如何在rails 3.x迁移中更改新列的位置

时间:2012-01-28 15:29:19

标签: ruby-on-rails ruby-on-rails-3

我创建了一个只添加新列的迁移,但是我希望在created_at和updated_at列之前添加它,是否有办法指定新列的创建位置?

我搜索过,只发现有人说要在add_column中使用:after选项,但它没有做任何事情。然后我查看了rails api文档,发现没有这样的选项。

2 个答案:

答案 0 :(得分:5)

选项适用于我后

add_column :table_name, :column_name, :type, :after => :column_name

另请参阅this question

答案 1 :(得分:2)

根据我的研究,:after选项不适用于 SQLite Postgres ,因为这些DBMS不允许此类操作。但是,该选项适用于 MySQL

参考文献:

  1. SQLite:https://www.sqlite.org/lang_altertable.html - 这基本上就是这样 告诉您创建一个具有正确列排序的新表,然后 复制数据。

  2. Postgres:https://wiki.postgresql.org/wiki/Alter_column_position