單一專案包含多個 DbContext(對應不同數據庫),enable-migrations 默認只能為一個 Context 生成 Migrations 目錄與 Configuration 類,無法直接支持多庫獨立遷移。
enable-migrations -ContextTypeName Ns.ContextA -MigrationsDirectory:Migrations_A。Migrations_A、Migrations_B 及 ConfigurationA、ConfigurationB。ConfigurationX 設置 AutomaticMigrationsEnabled = true 並指定 TargetDatabase 連接字符串。update-database -ConfigurationTypeName Ns.ConfigurationA。public class MyInitializer : IDatabaseInitializer {
public void InitializeDatabase(ContextA context) {
var migrator = new DbMigrator(new ConfigurationA());
migrator.Update();
}
}
Database.SetInitializer(new MyInitializer());
__MigrationHistory,多 Context 共用同一數據庫時需區分 ContextKey。Script-Migration 生成 SQL 由 DBA 執行。