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

时间:2018-11-08 01:11:16

标签: docker asp.net-core entity-framework-core

在Mac上,我有一个Net Core 2.1类库,其中包含一些Entity Framework迁移。

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

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

docker-compose.yml
src
  data
    project.data.csproj

docker-compose.yml文件如下:

services:
  data:
    build: .
    depends_on:
      - database
  database:
  image: "microsoft/mssql-server-linux"
  environment:
    SA_PASSWORD: "Pass.word123"
    ACCEPT_EULA: "Y"

目前无法正常工作。

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

1 个答案:

答案 0 :(得分:0)

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

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

这对我有用。