Migrator.net在Up()中删除表,在Down()中做什么?

时间:2010-01-04 18:26:07

标签: data-migration migratordotnet

我在项目中实现了Migrator.net,我从当前架构中删除了一个表。我的Up()只包含Database.RemoveTable("FooTable")。但是现在我对我应该为我的Down()做些什么感到有些失落。我是否需要手动解析所有过去的迁移以进行FooTable上的修改?有没有办法在Down()中的FooTable上运行以前的所有迁移?

2 个答案:

答案 0 :(得分:3)

数据怎么样?如果有50,000行,则重新创建空表不会回滚到先前的状态。

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

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

答案 1 :(得分:0)

Down()的想法是它会颠倒你Up()方法的效果,所以从技术上讲,如果你在数据库架构之后立即运行Up()然后Down()回到你开始的地方。

在您的情况下,您必须在Down()

中重新创建表格