首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在Rails迁移(MySQL)中,您能指定新列的位置吗?

在Rails迁移(MySQL)中,您能指定新列的位置吗?
EN

Stack Overflow用户
提问于 2008-12-16 16:17:15
回答 4查看 29.9K关注 0票数 63

如果我通过MySQL添加一个列,我可以指定该列将在表中的什么位置使用AFTER修饰符。但是,如果我通过Rails迁移执行add_column,则将在表的末尾创建该列。

rails迁移是否有指定添加列的位置的功能?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-07-15 06:17:43

在Rails 2.3.6+中,现在可以通过传递:after参数实现这一点

https://rails.lighthouseapp.com/projects/8994/tickets/3286-patch-add-support-for-mysql-column-positioning-to-migrations

对于那些没有意识到拥有这个特性的好处的人来说:您是否从不在ORM之外查看您的数据库?如果我在任何类型的UI中查看,我喜欢将外键、状态列、标志等所有内容组合在一起。这不会影响应用程序,但肯定会加快我检查数据的速度。

票数 69
EN

Stack Overflow用户

发布于 2009-10-04 20:28:23

我创建了一个补丁,将此附加功能添加到ActiveRecord Mysql适配器中。它适用于master和2-3-稳定。

https://rails.lighthouseapp.com/projects/8994/tickets/3286-patch-add-support-for-mysql-column-positioning-to-migrations

它可能是特定于mysql的,但它不会降低迁移的可移植性(其他适配器会忽略额外的定位选项)。

票数 8
EN

Stack Overflow用户

发布于 2008-12-16 17:02:28

在迁移中似乎没有add_column方法的位置选项。但是迁移支持执行文字SQL。我不是Rails开发人员,但类似于以下内容:

代码语言:javascript
复制
class AddColumnAfterOtherColumn < ActiveRecord::Migration
  def self.up
    execute "ALTER TABLE table_name ADD COLUMN column_name INTEGER 
      AFTER other_column"
  end

  def self.down
    remove_column :table_name, :column_name
  end
end
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/371796

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档