【问题标题】:Generate migration on app start - code first在应用启动时生成迁移 - 代码优先
【发布时间】:2017-07-12 09:34:35
【问题描述】:

在我的开发环境中,我希望我的数据库能够在每次应用程序启动时自动更新以匹配更新后的代码优先模型。 在我的生产环境中显然不是这种情况,但我希望至少尝试在本地进行设置。

此时我已经设置了“自动迁移”,但要使其正常工作,我必须在 NuGet 控制台中手动执行 update-database。 我希望这个命令可以在每次调用Application_Start()时自动执行

这可能吗?如果不是,为什么?如果是,我该如何实现它?

【问题讨论】:

  • MigrateDatabaseToLatestVersion 类可以在这种情况下使用。不建议在生产数据库中使用。
  • 我尝试过使用MigrateDatabaseToLatestVersion,但在模型更新时似乎并没有生成新的迁移。我可能做错了什么,我会再试一次
  • 为什么要投反对票?
  • 这是一个非常好的问题,如果您有一个持续部署系统并且不想在每次发布后手动连接到您的实时数据库并运行命令,那么这个问题是有意义的。

标签: asp.net entity-framework asp.net-mvc-5


【解决方案1】:

你应该使用它:

new MigrateDatabaseToLatestVersion<Context, MyConfiguration>().InitializeDatabase(Db);

在控制器构造函数中,MyConfiguration 是:

internal sealed class MyConfiguration : DbMigrationsConfiguration<MigrationDbContext>
{
    public MyConfiguration()
    {
        AutomaticMigrationsEnabled = true;
    }

}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-01-27
    • 1970-01-01
    • 2012-09-15
    • 1970-01-01
    • 2014-05-20
    • 1970-01-01
    • 2016-05-26
    • 1970-01-01
    相关资源
    最近更新 更多