在我们的生产环境中,我们有一个自动部署脚本,可以关闭我们的站点,运行迁移,然后将其重新上线。当不需要运行任何迁移时,我们希望通过切换到新代码来避免网站关闭。
实体框架是否有像“Update-Database”这样的命令,可以让我们检查是否有要运行的迁移?
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();
}
我将
DbContext.Database.CompatibleWithModel()
与 EF 6.1.3 一起使用