实体框架-检查挂起的迁移

本文关键字:迁移 挂起 检查 框架 实体 | 更新日期: 2023-09-27 18:25:28

在我们的生产环境中,我们有一个自动部署脚本,它可以关闭我们的站点,运行迁移,然后使其重新联机。当不需要运行任何迁移时,我们希望通过切换到新代码来避免网站瘫痪。

实体框架是否有一个类似"更新数据库"的命令,可以让我们检查是否有迁移要运行?

实体框架-检查挂起的迁移

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 一起使用