【问题标题】:How to run database migrations on new database in Azure?如何在 Azure 中的新数据库上运行数据库迁移?
【发布时间】:2019-07-07 09:51:55
【问题描述】:

将我的应用程序部署到 Azure 后,我创建了新数据库,但现在我不知道如何运行 EF 数据库迁移。在我发布的文件中,我有一个 web.config 文件,其中包含基于其他帖子的 <environmentVariable name="ASPNETCORE_ENVIRONMENT" value="Production" /> 应该足以运行迁移。

我已确保我的连接字符串正确,并且可以成功创建与 Azure 数据库的连接。

我不知道接下来要做什么来填充我的数据库?我现在已经在第二天了。

【问题讨论】:

    标签: azure asp.net-core


    【解决方案1】:

    添加迁移后,您可以手动通过运行 PS cmd Update-Database自动在您的应用启动时通过代码 myDbCtx.Database.Migrate()你的Startup.cs

    在应用迁移之前,您需要确保连接字符串指向正确的数据库。如果您使用的是 Asp.net Core,则您的连接字符串在 appsettings.json 内,并且此值可以被您的 Azure 应用服务、应用程序设置覆盖。

    应用迁移后,__EFMigrationsHistory 表中将为MigrationIdProductVersion 插入一行。在进行生产之前先在本地测试所有内容。

    还可以查看EF Migrations docs。希望这会有所帮助。

    【讨论】:

    • 您好,感谢您的回答!对于本地开发,我一直在手动运行update 命令更新我的数据库模式。但是对于 Azure,我会在 CMD 或 PS 中做同样的事情吗?我想那是我的脱节。在本地,我去 DataAccess 项目,添加迁移并运行它们。在 Azure 中,我有点困惑它是如何连接的?
    • 如果您在本地对 Azure 数据库运行 Update-Database,请确保您的连接字符串在 appsettings.json 中指向它。或者,您可以先在本地运行 Script-Migration 以生成 .sql 脚本,然后打开 SqlServer Management Studio 并针对您的 Azure 数据库运行 .sql。我还使用上面提到的 Azure 上的代码自动应用了迁移,我为此写了一篇文章 fanray.com/blog/post/18。所以这三种方式都可以工作。
    猜你喜欢
    • 2016-01-16
    • 1970-01-01
    • 2017-05-25
    • 1970-01-01
    • 2012-03-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多