【发布时间】:2013-09-24 19:02:44
【问题描述】:
我了解到add_column 有一个:after 选项来设置列的插入位置。太糟糕了,我知道了:添加一堆之后。
如何编写迁移以简单地重新排序列?
【问题讨论】:
-
您可以转储数据库以保存数据;重新排序您的 Schema.rb 以将时间戳列放在 create_table 块的末尾;运行
rake db:drop db:create db:migrate,然后重新导入您的数据 -
现在,这是一个未记录的功能:You have to read core sources 找到它。仅供参考,我检查了 rename_column 代码:它不提供此功能(对不起,它没有帮助)。
-
在迁移中使用 SQL。 stackoverflow.com/questions/4095481/…
-
@Zabba 这不是一个坏主意。您能否将其作为答案提交,最好使用一些代码来显示在迁移中执行原始 MySQL 的语法。
-
我刚刚指出了关于 SO 的另一个答案,但 Stefan 展示了一种无需 SQL 的好方法。
标签: ruby-on-rails ruby migration ruby-on-rails-4