【问题标题】:Entity Framework - Check for pending migrations实体框架 - 检查挂起的迁移
【发布时间】:2013-07-29 19:10:03
【问题描述】:

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

实体框架是否有类似“Update-Database”之类的命令,可以让我们检查是否有要运行的迁移?

【问题讨论】:

    标签: c# asp.net-mvc entity-framework


    【解决方案1】:

    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(); 
    }
    

    【讨论】:

    • 我还没来得及实现这个,但这看起来就像我正在寻找的一样。
    【解决方案2】:

    我在 EF 6.1.3 中使用 DbContext.Database.CompatibleWithModel()

    【讨论】:

    • 如果手动添加迁移步骤(例如,枚举值已更改,您可能会应用脚本来更新数据库中的相应字段)DbContext.Database.CompatibleWithModel() 将返回true。这与原始请求不符!
    猜你喜欢
    • 1970-01-01
    • 2015-05-11
    • 1970-01-01
    • 1970-01-01
    • 2015-10-28
    • 2017-08-09
    • 1970-01-01
    相关资源
    最近更新 更多