我在我的项目中实现了Migrator.net,并且我正在从当前模式中删除一个表。我的Up()
简单包含Database.RemoveTable("FooTable")
. 但现在我有点不知所措,我应该为我的Down()
. 我是否需要手动解析所有过去的迁移以进行修改FooTable
?有没有办法在 FooTable 上运行所有以前的迁移Down()
?
问问题
522 次
2 回答
3
数据呢?如果有 50,000 行,重新创建一个空表不会回滚到之前的状态。
要使用数据启用数据库降级,您需要:
- 在 Up() 中,从数据模型中分离表(例如删除 FK)并将其重命名为 DeleteMe_FooTable 之类的名称。但实际上不要丢弃它。
- 在 Down() 中,将其重新附加到您的数据模型 - 将其重命名为其原始名称并恢复 FK。
- 部署后几天/几周,当您知道 100% 保证永远不会回滚时,DBA 可以手动删除该表。
于 2011-08-22T09:03:01.370 回答
0
的想法Down()
是它会逆转你Up()
方法的效果,所以从技术上讲,如果你运行Up()
然后Down()
在你的数据库模式之后马上回到你开始的地方。
在您的情况下,您将不得不在您的Down()
于 2011-04-14T16:14:15.983 回答