【问题标题】:EF Migrations - How and when is the DB migrated downEF 迁移 - 数据库迁移的方式和时间
【发布时间】:2014-02-19 19:57:58
【问题描述】:

我已按照 MSDN 流程 here 启用迁移,并且我创建了一些运行良好的测试迁移(上升)。我不完全确定Down() 的调用方式和时间。目前我正在编写的应用程序将被安装并且迁移发生在应用程序运行时(这一切正常)

通常如何以及何时将数据库向下迁移?

  • 卸载时
  • 其他版本在运行时是否会处理这个问题(比如卸载后安装旧版本)
  • 还是有其他因素影响?

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

【问题讨论】:

  • 在您提供的链接中,您可以找到如何手动降级到特定迁移
  • 那只能在 VS 中工作?
  • 还有可以运行迁移的外部 migrate.exe 工具

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


【解决方案1】:

Down() 在您必须回滚安装时使用,并且很可能在包管理器控制台中手动运行:

PM> Update-Database –TargetMigration:"TheNameOfLastMigrationToKeep"

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

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

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

【讨论】:

    猜你喜欢
    • 2012-03-04
    • 1970-01-01
    • 2018-06-19
    • 2019-08-03
    • 1970-01-01
    • 2019-02-25
    • 1970-01-01
    • 1970-01-01
    • 2019-02-13
    相关资源
    最近更新 更多