影响许多表的数据库迁移的最佳实践

时间:2016-05-28 20:41:54

标签: ruby-on-rails database database-design

假设您有一个包含50个表的数据库。您正在更改其中一个列的措辞,这些列通过关系影响其中的20个表。您将如何设置此迁移?我看到至少有三种可能性

  1. 单独迁移每个表的更改
  2. 所有人的单一迁移
  3. 更改表格创建的初始声明。
  4. 我非常有信心3是最糟糕的方法,因为现在每个人都不能简单地迁移,但必须重建整个架构。但是我被困在1和2之间.2可能是最好的方法,因为你为一个更改创建了一个迁移,这恰好会影响很多表。这就是我倾向于的。另一方面,它感觉非常混乱。

    对此的任何资源也将受到赞赏。感谢

1 个答案:

答案 0 :(得分:0)

选择2更有意义。

假设您选择第一个选项并执行x单独迁移。您最终会遇到x迁移,这些迁移本身会破坏数据库的完整性,因此您必须将它们全部一起运行(或者如果要撤消更改,则将它们全部回滚)。因此,如果需要将所有更改组合在一起,那么将它们放在同一个文件中是有意义的