Docker 容器中的 EF 迁移问题

Problem with EF Migration in Docker Container

提问人:Krystian 提问时间:10/27/2023 最后编辑:Denis KiryanovKrystian 更新时间:10/29/2023 访问量:45

问:

我在将数据库迁移到 docker 容器时遇到问题。

在上述迁移过程中,我收到以下错误

System.InvalidOperationException: 'To change the IDENTITY property of a column, the column needs to be dropped and recreated.'

Docker-compose.yml:

version: '3.4'


networks:
    backend:


services:
  libraryapi:
    container_name: Library-Api
    image: ${DOCKER_REGISTRY-}libraryapi
    build:
      context: .
      dockerfile: Dockerfile
    networks:
        - backend
    ports:
        - 8001:80
        - 8003:443
    environment:
        - DB_HOST=librarydb
        - DB_NAME=Library
        - DB_SA_PASSWORD=q6ZOc32APBvTelKK6nlb0g31rVcWTq
  librarydb:
     container_name : Library-DB
     image : mcr.microsoft.com/mssql/server:2022-latest
     networks:
        - backend
     ports:
        - 8002:1433
     environment:
        - ACCEPT_EULA=Y
        - MSSQL_SA_PASSWORD=q6ZOc32APBvTelKK6nlb0g31rVcWTq    

Docker文件:

FROM mcr.microsoft.com/dotnet/aspnet:6.0 AS base

WORKDIR /app

EXPOSE 80

EXPOSE 443

FROM mcr.microsoft.com/dotnet/sdk:6.0 AS build

WORKDIR /src

COPY \["LibraryAPI.csproj", "."\]

RUN dotnet restore "./LibraryAPI.csproj"

COPY . .

WORKDIR "/src/."

RUN dotnet build "LibraryAPI.csproj" -c Release -o /app/build

FROM build AS publish

RUN dotnet publish "LibraryAPI.csproj" -c Release -o /app/publish /p:UseAppHost=false

FROM base AS final

WORKDIR /app

COPY --from=publish /app/publish .

ENTRYPOINT \["dotnet", "LibraryAPI.dll"\]

docker-compose-override(不管是什么):

version: '3.4'

services:
  libraryapi:
    environment:
      - ASPNETCORE_ENVIRONMENT=Development
      - ASPNETCORE_URLS=https://+:443;http://+:80
    ports:
      - "80"
      - "443"
    volumes:
      - ${APPDATA}/Microsoft/UserSecrets:/root/.microsoft/usersecrets:ro
      - ${APPDATA}/ASP.NET/Https:/root/.aspnet/https:ro

我正在通过Visual Studio中的Docker Compose项目启动我的应用程序

我已经删除了容器、docker 缓存,并多次重建了项目。我不知道我能做什么。

sql-server 实体框架 asp.net-web-api docker-compose

评论


答:

-1赞 Denis Kiryanov 10/27/2023 #1

我相信这个问题是特定于数据库的,而不是与 Docker 相关的。请查看数据库迁移。它说您需要删除具有 identity 属性的列并重新创建它以应用迁移。您的 SQL 代码目前是错误的。