在我们的生产环境中,我们有一个自动部署脚本,可以关闭我们的网站,运行迁移,然后将其重新联机。我们希望避免在没有任何需要运行的迁移时切换到新代码来关闭网站。
实体框架是否有像“Update-Database”这样的命令,可以让我们检查是否有要运行的迁移?
答案 0 :(得分:16)
DbMigrator
类具有GetPendingMigrations
方法,听起来就像您要查找的方法。它应该像
YourMigrationsConfiguration cfg = new YourMigrationsConfiguration();
cfg.TargetDatabase =
new DbConnectionInfo(
theConnectionString,
"provider" );
DbMigrator dbMigrator = new DbMigrator( cfg );
if ( dbMigrator.GetPendingMigrations().Any() )
{
// there are pending migrations
// do whatever you want, for example
dbMigrator.Update();
}
答案 1 :(得分:4)
我在EF 6.1.3中使用DbContext.Database.CompatibleWithModel()