Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/327.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 多数据库实例上的MVC 3 EF迁移_C#_Asp.net Mvc 3_Entity Framework_Database Migration_Entity Framework Migrations - Fatal编程技术网

C# 多数据库实例上的MVC 3 EF迁移

C# 多数据库实例上的MVC 3 EF迁移,c#,asp.net-mvc-3,entity-framework,database-migration,entity-framework-migrations,C#,Asp.net Mvc 3,Entity Framework,Database Migration,Entity Framework Migrations,全部, 我试图解决一个看似非常常见的问题,即每当对开发数据库进行更改时,同时更新开发数据库和生产数据库 大概是这样的: PM > Add-Migration AddMyNewColumnColumnToMyTable PM > update-database - dev PM > update-database - prod 我在研究这个问题时看到了一些解决方案,但还没有一个比在开发和生产数据库上运行,然后在生产数据库上导出和运行SQL脚本更简单、更直接的解决方案 你们是怎

全部,

我试图解决一个看似非常常见的问题,即每当对开发数据库进行更改时,同时更新开发数据库和生产数据库

大概是这样的:

PM > Add-Migration AddMyNewColumnColumnToMyTable
PM > update-database - dev
PM > update-database - prod 
我在研究这个问题时看到了一些解决方案,但还没有一个比在开发和生产数据库上运行,然后在生产数据库上导出和运行SQL脚本更简单、更直接的解决方案

你们是怎么做到的


谢谢

只要您的两个数据库都遵循相同的迁移流,这意味着它们都是从相同的迁移中创建的,并且按相同的时间顺序更新,那么使用相同的迁移就不会有任何问题

您可以在web.config(或app.config)中创建两个连接字符串,并在更新数据库时使用以下语法:

update-database -connectionStringName YourProdDbContextConnectionStringName
因此,假设您总共有5次迁移:迁移1、迁移2、迁移3、迁移4和迁移5


如果您的产品更新到Migration3,并且您已经在您的dev数据库上执行了Migration4和Migration5,则向您的产品发出带有不同连接字符串的更新命令将同时应用Migration4和Migration5,而不会出现任何问题。

谢谢。这就是我想要实现的目标