EF迁移 - 数据库迁移的方式和时间

时间:2014-01-28 13:31:23

标签: c# entity-framework database-migration ef-migrations

我已经按照MSDN流程here启用了迁移,我创建了一些工作正常的测试迁移(上行)。我不完全确定的是Down()的调用方式和时间。目前我正在编写的应用程序将在应用程序运行时进行迁移(这一切正常)

数据库如何以及何时正常迁移到病房?

  • 在卸载时
  • 另一个版本在运行时是否会处理此问题(例如在卸载后安装旧版本)
  • 还是有其他因素进来吗?

如果是手动过程,那么它是如何执行的?

1 个答案:

答案 0 :(得分:0)

当您必须回滚安装并且很可能在软件包管理器控制台中手动运行时,会使用

Down()

PM> Update-Database –TargetMigration:"TheNameOfLastMigrationToKeep"

(如果您当前的迁移比指定的更新,则会降级,否则会将您的数据库迁移到特定的迁移)

在最有可能的工作流程中,您以增量方式开发应用程序,并且作为部署的一部分,您可以使用迁移的Up()部分自动将数据库从A点迁移到B点。

不幸的是,这并不是一直有效。有时您在部署后立即发现了一个大错误,现在您需要一种干净的方法来使数据库恢复到迁移之前的状态。要从B点返回到A点,您可以使用Down()迁移或恢复数据库。您更喜欢哪一个取决于您的系统,您的流程以及您作为开发人员是否可以恢复数据库。