1

我在我的项目中实现了Migrator.net,并且我正在从当前模式中删除一个表。我的Up()简单包含Database.RemoveTable("FooTable"). 但现在我有点不知所措,我应该为我的Down(). 我是否需要手动解析所有过去的迁移以进行修改FooTable?有没有办法在 FooTable 上运行所有以前的迁移Down()

4

2 回答 2

3

数据呢?如果有 50,000 行,重新创建一个空表不会回滚到之前的状态。

要使用数据启用数据库降级,您需要:

  1. 在 Up() 中,从数据模型中分离表(例如删除 FK)并将其重命名为 DeleteMe_FooTable 之类的名称。但实际上不要丢弃它。
  2. 在 Down() 中,将其重新附加到您的数据模型 - 将其重命名为其原始名称并恢复 FK。
  3. 部署后几天/几周,当您知道 100% 保证永远不会回滚时,DBA 可以手动删除该表。
于 2011-08-22T09:03:01.370 回答
0

的想法Down()是它会逆转你Up()方法的效果,所以从技术上讲,如果你运行Up()然后Down()在你的数据库模式之后马上回到你开始的地方。

在您的情况下,您将不得不在您的Down()

于 2011-04-14T16:14:15.983 回答