使用 MigrateDatabaseToLatestVersion 时如何执行回滚

How do you perform a rollback when using MigrateDatabaseToLatestVersion

使用 EF 迁移,您可以添加迁移脚手架,然后保持 运行宁 'Update-Database' 以应用更改。并为了回滚以下工作:

Update-Database -TargetMigration: <xyzMigration>

这非常适合更新您的开发人员。 D B。但是,当我使用 MigrateDatabaseToLatestVersion 自动迁移以部署到测试和生产等其他环境时。为任何更改添加迁移文件并让它们反映出来效果很好。

但是,如果我想回滚到特定的迁移,我该如何实现呢? 'Update-Database -TargetMigration:' 仅更新您的本地开发人员。数据库或您的连接字符串在本地指向的任何内容。并且必须通过包管理器控制台 运行。回滚不是实际部署的选项吗?您是否只需 'Add-Migration' 并指定一个包含您想要的所有更改的新迁移?

对于生产数据库,根据您想要的更改执行 Add-Migration 可能最有意义,尤其是在您有多个部署的情况下。

其他选项包括:

  • 使用 DbMigrator.Update() 和指示目标迁移的参数。 (我可能会使用一个单独的构建,只是为了这个目的......似乎很难处理......特别是当你在未来添加额外的迁移时)。
  • Update-Database 也有 -ConnectionString 的可选参数,但这需要在可以访问目标数据库的计算机上设置 Visual Studio。