迁移时是否可以重新排序列?

Is it possible to re-order columns when doing a migration?

我对我的模型的列顺序非常挑剔,以至于我正在删除我的数据库并更改我的原始迁移以确保列的顺序是我想要的。

有比我现在做的更好的方法吗?

我也使用注释 gem,我喜欢看到我的列以特定方式排序。

更改原始迁移不被视为最佳实践,尤其是当多人在同一个项目上工作时,并且每次更改现有迁移时每个人都必须重置他们的数据库。

如果您仍然对列的顺序有强烈的感觉,一种方法是编写一个 sql 查询作为迁移的一部分,并且对列的排序的支持取决于数据库。

对于mySQL (https://dev.mysql.com/doc/refman/5.7/en/alter-table.html):

To add a column at a specific position within a table row, use FIRST or AFTER col_name. The default is to add the column last. You can also use FIRST and AFTER in CHANGE or MODIFY operations to reorder columns within a table.`