我使用基于此解决方案的EF 6 Code First MVC 5制作了一个项目原型:
EF Code First to create multiple databases dynamically
现在我想知道迁移如何与多个数据库一起使用?
这是否意味着我需要为我拥有的每个数据库运行Add-Migration MigrationsName?
答案 0 :(得分:2)
您刚刚确认所有数据库需要同时升级,然后您只需使用一个数据库添加迁移,然后将其更新到所有数据库。
您可以根据配置中的连接字符串名称指定连接字符串名称参数。
<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>());