如何在rails 3.x迁移中更改新列的位置
我创建了一个只添加新列的迁移,但是我希望在created_at和updated_at列之前添加它,是否有办法指定新列的创建位置?
我搜索过,只发现有人说要在add_column中使用:after选项,但它没有做任何事情。 然后我查看了rails api文档,发现没有这样的选项。
选项适合我
add_column :table_name, :column_name, :type, :after => :column_name
还看看这个问题 。
根据我的研究, :after
选项不适用于SQLite或Postgres ,因为这些DBMS不允许这样的操作。 但是,该选项适用于MySQL 。
参考文献:
-
SQLite: https : //www.sqlite.org/lang_altertable.html – 这基本上告诉您创建一个具有正确列排序的新表,然后复制数据。
-
Postgres: https : //wiki.postgresql.org/wiki/Alter_column_position