在开发中还原和添加迁移后更新生产数据库



我正在运行一个具有 ef core 和两个环境的 asp.net 核心应用程序:prod 和 dev。不久前,我创建了一些迁移并将其应用于这两个环境,但需要在开发中回滚它们。在 dev 中回滚后,我继续开发,现在在 dev 中有许多不在 prod 中的迁移,以及我尚未回滚的 prod 中恢复的迁移。所以现在我的环境的迁移如下所示:

Prod => a,b,c,d

Dev => a,b,e,f,g

(需要注意的一件主要事情:我在 PROD 中恢复的迁移 (C,D( 没有被使用,它们只是我创建的模型 未来的使用 - 我最终改变了 - 所以这些数据丢失 迁移不是问题(

我无法运行最初在 dev 中运行的相同命令,因为我现在不添加任何迁移,我只需要将 prod 数据库更新到我在本地的迁移中即可。

如果我update-database b,那么update-database这会恢复 prod 中的更改,然后更新到我的本地迁移?或者这会还原我在 Visual Studio 中添加的迁移吗?我在这里有什么选择?

在生产环境中运行降级到最新的工作迁移:

Update-Database –Migration b

然后从迁移文件夹中删除2个迁移 c 和d

最后,您可以更新到生产环境中的最新迁移:

Update-Database

最新更新