如何在 Azure 中的新数据库上运行数据库迁移?

问题描述 投票:0回答:2

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

<environmentVariable name="ASPNETCORE_ENVIRONMENT" value="Production" />
应该足以运行迁移。

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

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

azure asp.net-core
2个回答
2
投票

添加迁移后,您可以通过运行 PS cmd Update-Database

手动
应用它,也可以在应用程序启动时通过在 myDbCtx.Database.Migrate() 中包含代码
Startup.cs
自动
应用它。

在应用迁移之前,您需要确保连接字符串指向正确的数据库。如果您使用的是 Asp.net Core,您的连接字符串位于

appsettings.json
内,并且该值可以由您的 Azure 应用服务、应用程序设置覆盖。

应用迁移后,在

__EFMigrationsHistory
表中将为
MigrationId
ProductVersion
插入一行。在进行生产之前,首先在本地测试所有内容。

另请查看 EF 迁移文档。希望这有帮助。


0
投票

我就是这么做的。

  • 我有 2 个 appsettings.json 文件,一个用于开发 (
    appsettings.Development.json
    ),一个用于生产 (
    appsettings.Production.json
    )。在
    appsettings.Development.json
    文件中,我指定 localdb 的连接字符串,在
    appsettings.Production.json
    文件中,我指定 Azure sqldb 的连接字符串,两者具有相同的名称和密钥。
  • Program.cs
    文件中注册连接字符串。这将根据应用程序的当前环境(开发或生产)自动获取连接字符串。
  • 打开 PowerShell 并导航到项目文件夹(其中包含
    .csproj
    文件的文件夹)
  • 运行命令:
    $env:ASPNETCORE_ENVIRONMENT='Production'
    暂时切换到生产环境。
  • 使用以下命令更新 Azure 数据库:
    dotnet ef database update
© www.soinside.com 2019 - 2024. All rights reserved.