如何使用 Docker 在 SQL Server 数据库上运行 EF Core 迁移?

Mig*_*ura 10 docker entity-framework-core asp.net-core

在 Mac 上,我有一个 Net Core 2.1 类库,其中包含一些实体框架迁移。

我需要使用 Docker 来运行 SQL Server 并使用预览迁移更新数据库。

我在我的项目中添加了一个 docker-compose.yml 文件:

docker-compose.yml
src
  data
    project.data.csproj
Run Code Online (Sandbox Code Playgroud)

docker-compose.yml 文件如下:

services:
  data:
    build: .
    depends_on:
      - database
  database:
  image: "microsoft/mssql-server-linux"
  environment:
    SA_PASSWORD: "Pass.word123"
    ACCEPT_EULA: "Y"
Run Code Online (Sandbox Code Playgroud)

目前这不起作用。

如何在 Mac 中使用 docker 在 SQL Server 上运行 EF Core 迁移?

小智 3

您需要在启动文件的配置中添加以下行。它将在应用程序启动时执行。它将把所有迁移文件更新到数据库。

using (IServiceScope scope = app.ApplicationServices.GetRequiredService<IServiceScopeFactory>().CreateScope())
            {
                scope.ServiceProvider.GetService<MyDBCOntext>().Database.Migrate();
            }
Run Code Online (Sandbox Code Playgroud)

这对我有用。