【发布时间】:2013-07-29 19:10:03
【问题描述】:
在我们的生产环境中,我们有一个自动部署脚本,它会关闭我们的网站,运行迁移,然后将其重新上线。当不需要运行任何迁移时,我们希望通过切换到新代码来避免网站瘫痪。
实体框架是否有类似“Update-Database”之类的命令,可以让我们检查是否有要运行的迁移?
【问题讨论】:
标签: c# asp.net-mvc entity-framework
在我们的生产环境中,我们有一个自动部署脚本,它会关闭我们的网站,运行迁移,然后将其重新上线。当不需要运行任何迁移时,我们希望通过切换到新代码来避免网站瘫痪。
实体框架是否有类似“Update-Database”之类的命令,可以让我们检查是否有要运行的迁移?
【问题讨论】:
标签: c# asp.net-mvc entity-framework
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();
}
【讨论】:
我在 EF 6.1.3 中使用 DbContext.Database.CompatibleWithModel()
【讨论】:
DbContext.Database.CompatibleWithModel() 将返回true。这与原始请求不符!