如果我通过MySQL添加一个列,我可以指定该列将在表中的什么位置使用AFTER修饰符。但是,如果我通过Rails迁移执行add_column,则将在表的末尾创建该列。
rails迁移是否有指定添加列的位置的功能?
发布于 2010-07-15 06:17:43
在Rails 2.3.6+中,现在可以通过传递:after参数实现这一点
对于那些没有意识到拥有这个特性的好处的人来说:您是否从不在ORM之外查看您的数据库?如果我在任何类型的UI中查看,我喜欢将外键、状态列、标志等所有内容组合在一起。这不会影响应用程序,但肯定会加快我检查数据的速度。
发布于 2009-10-04 20:28:23
我创建了一个补丁,将此附加功能添加到ActiveRecord Mysql适配器中。它适用于master和2-3-稳定。
它可能是特定于mysql的,但它不会降低迁移的可移植性(其他适配器会忽略额外的定位选项)。
发布于 2008-12-16 17:02:28
在迁移中似乎没有add_column
方法的位置选项。但是迁移支持执行文字SQL。我不是Rails开发人员,但类似于以下内容:
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
https://stackoverflow.com/questions/371796
复制相似问题