【发布时间】:2011-04-17 15:33:49
【问题描述】:
很多人都在谈论数据库迁移,尤其是它的回滚可能性。
我怀疑它是否有用,因为 db 和 model 的模式与应用程序逻辑 (MVC) 紧密相连。
假设我已经完成了一些迁移的回滚。什么?该应用程序将无法运行,因为它的逻辑完全依赖于 db。
数据库迁移回滚能力的用例是什么?
更新 1
主要问题
当我需要更改代码时,为什么将回滚显示为一项功能?
我不创建迁移,例如“add_another_field_to_table”。相反,每个迁移文件都完整描述了 DB 中的每个表。当我需要更改数据库中的某些内容时,我只需更改迁移文件,但不要回滚。
真的,如果我回滚迁移,它不会像版本控制那样让我及时回到过去。我有很多工作,当计划更改并且回滚什么都没给我时。
【问题讨论】:
-
"我不创建迁移,例如"add_another_field_to_table"。相反,每个迁移文件都完整描述了数据库中的每个表。当我需要更改数据库中的某些内容时,我只需更改迁移文件” 你能进一步解释一下吗,因为这对我来说听起来很奇怪。当您需要添加列时,您不会进行新的迁移,而是编辑旧的迁移?听起来您没有正确使用迁移...
-
是的,在我看来也是如此。我没有注意到部分迁移的任何好处。他们只是模糊了目前迁移所发生的情况。我知道,那个 schema.rb 文件就是为了这个。但是,部分迁移只是减慢了我的工作,因为当我需要查看数据库中的某个表时,我需要跳过几个“add_column_to_table”迁移文件。但是,它们的真正好处是什么?我还不知道答案...
标签: ruby-on-rails database-migration