EF Code First迁移多个数据库

本文关键字:数据库 迁移 Code First EF | 更新日期: 2023-09-27 18:18:01

我已经使用基于此解决方案的EF 6 Code First MVC 5原型化了一个项目:

EF Code首先动态创建多个数据库

现在我想知道迁移如何与多个数据库一起工作?

这是否意味着我将需要为我拥有的每个数据库运行Add-Migration MigrationsName ?

EF Code First迁移多个数据库

您刚刚确认所有数据库需要同时升级,那么您只需要使用一个数据库来添加迁移,然后将其更新到所有数据库。

可以根据配置中的连接字符串名称指定连接字符串名称参数。

<connectionStrings>
    <add name="CompanyABC"
         connectionString="Data Source=.; Initial Catalog=CompanyABC; Integrated Security = true;" 
         providerName="System.Data.SqlClient" />
    <add name="CompanyDEF"
         connectionString="Data Source=.; Initial Catalog=CompanyDEF; Integrated Security = true;"
         providerName="System.Data.SqlClient" />
    <add name="CompanyXYZ"
         connectionString="Data Source=.; Initial Catalog=CompanyXYZ; Integrated Security = true;"
         providerName="System.Data.SqlClient" />
</connectionStrings>

PM> Enable-Migrations -ConnectionStringName CompanyABC
PM> Add-Migration UpgradeToVersionX -ConnectionStringName CompanyABC
PM> Update-Database -ConnectionStringName CompanyABC
PM> Update-Database -ConnectionStringName CompanyDEF
PM> Update-Database -ConnectionStringName CompanyXYZ

运行时运行迁移

Database.SetInitializer<AppContext>(
   new MigrateDatabaseToLatestVersion<AppContext, Configuration>());