当我发布 Web API 时,Azure 不应用迁移

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

我正在使用 MS SQL Server 创建示例 EF Core 项目并将其部署在 Azure 中。

到目前为止,我有一个 BookingAPI 服务,并且有 2 个类库,分别称为 SharedServices 和 Domains。

BookingAPI没有ApplicationDBContextDomains 项目有 ApplicationDBContext 并且所有域也在其中。

BookingAPI 正在调用 Domains 项目来访问数据库。

项目结构如下

- BookingServices (Folder)
    - BookingAPI (Web API in .net core)
    - Program.cs
    - appsettings.json
        - appsettings.Development.json
        - appsettings.Production.json

- SharedServices (Folder)
    - SharedServices (class Library)
    - Domains (class Library)
        - Data (Folder)
            -ApplicationDBContext
        - Migrations (Folder)
            - Migration1
            - Migration2
        - Tables (Folder)
            - Bookings.cs
            - Tables.cs  

            

只要我在当地工作,就完全没问题。我可以创建迁移并更新数据库。 但我想在 Azure 中部署这个项目。 为此,我在 Azure 中创建了一个数据库,并从 Visual Studio 发布了它。

但是,我在将 BookingAPI 发布到 Azure 时遇到以下问题:

问题

  1. 如果我在 appsettings.Development.jsonappsettings.Production.json 中写入我的 ConnectionStringsAzure 发布者无法找到它们。如果我把它写在appsettings.json中,那么就可以找到它。

  2. 即使我正确引用了 Domains 项目(我使用 DbContext 从 BookingAPI 进行数据库更新),并且 Domains 项目中有迁移,但在发布过程中找不到迁移,并且不会应用于 Azure 数据库。

任何人都可以帮我解决这个问题吗?

谢谢!

c# azure entity-framework asp.net-core azure-web-app-service
1个回答
0
投票

在不同的环境下工作时,发布时需要注意一些事项。显然 appsettings.json 是默认设置的,因为您在发布时没有指定环境。

如果您已完成所有环境设置,则发布生产环境就足够了。

dotnet 发布 -c ASPNETCORE_ENVIRONMENT

以及生产环境的示例

dotnet 发布 -c 制作

参考

© www.soinside.com 2019 - 2024. All rights reserved.