Nic*_*ick 5 ruby migration ruby-on-rails associations
我最近一直在写一些属于不可逆转移伞的迁移.但他们并非世界末日不可逆转.如果你愿意,你可以回滚它们.我现在的情景是将一对多的关系改变为多对多的关系.它涉及删除列并创建新的连接表.(以及模型中的两行).
我在考虑,而不是中止向下迁移,我可以说"此迁移是[INSERT SCARY MESSAGE HERE],你确定要继续吗?Y/N"然后如果他们选择回滚迁移?只是将迁移放在if语句中?
很容易使迁移不可逆转,通常有充分的理由(例如数据无法恢复).这些问题通常是通过编写手动迁移来解决的吗?
在我的诺贝尔心中,拥有一个快乐的媒介是件好事.这是明智的吗?也许我只是不明白何时首先使它们不可逆.
如果可能的话,我总是尝试使迁移可逆。我认为我遇到问题的唯一一次是当您从粗略定义的数据模型转到更细粒度的数据模型,然后再返回时。不过,我认为没有任何理由不使用您的解决方案,当然这取决于迁移的后果。也没有什么可以阻止运行向下迁移的人注释掉您提出的错误并编写自己的代码来反转迁移,但对您来说更安全,编写数据模型更改的人知道如何转换回原来的状态以前的状态而不是他们的猜测。