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