使用 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。
使用 EF 迁移,您可以添加迁移脚手架,然后保持 运行宁 'Update-Database' 以应用更改。并为了回滚以下工作:
Update-Database -TargetMigration: <xyzMigration>
这非常适合更新您的开发人员。 D B。但是,当我使用 MigrateDatabaseToLatestVersion 自动迁移以部署到测试和生产等其他环境时。为任何更改添加迁移文件并让它们反映出来效果很好。
但是,如果我想回滚到特定的迁移,我该如何实现呢? 'Update-Database -TargetMigration:' 仅更新您的本地开发人员。数据库或您的连接字符串在本地指向的任何内容。并且必须通过包管理器控制台 运行。回滚不是实际部署的选项吗?您是否只需 'Add-Migration' 并指定一个包含您想要的所有更改的新迁移?
对于生产数据库,根据您想要的更改执行 Add-Migration
可能最有意义,尤其是在您有多个部署的情况下。
其他选项包括:
- 使用
DbMigrator.Update()
和指示目标迁移的参数。 (我可能会使用一个单独的构建,只是为了这个目的......似乎很难处理......特别是当你在未来添加额外的迁移时)。 Update-Database
也有-ConnectionString
的可选参数,但这需要在可以访问目标数据库的计算机上设置 Visual Studio。