4

일부 웹 프로젝트에 대한 EF 마이그레이션을 적용 1.1.0만 Asp.Net 코어 1.0 엔티티 프레임 워크 코어를 사용하여 나는 여러 프로젝트를 가지고

나는 코드 첫 번째 마이그레이션 방법을하고 난을 통해 푸른에 게시 Visual Studio 2015.

Azure Sql Server에서 마이그레이션을 적용하는 방법은 게시시 "엔터티 프레임 워크 마이그레이션 - 게시시이 마이그레이션 적용"을 선택하여 연결 문자열을 입력했습니다.

여러 패키지를 업데이트했는데 이제는 내 프로젝트 중 하나에서 더 이상 게시시 마이그레이션을 적용 할 수있는 옵션이 표시되지 않습니다. 나는 그것이 데이터 컨텍스트를 발견하려고 볼 수 있지만 아무것도를 찾을 수 없습니다 (이 같은 프로젝트에있다하더라도 ..)

을 아래를 참조

  • 프로젝트 나는에 마이그레이션을 적용 할 수있는 푸른 게시 할 때 : 푸른에 마이그레이션을 적용 할 수있는 옵션이 사라 출판 apply migrations available

  • 프로젝트 : apply migrations not available

두 프로젝트에 동일한 Visual Studio (2015 업데이트 3)를 사용하고 있기 때문에 프로젝트에 대한 종속성 버전과 관련이 있다고 생각합니다. 내 IDE가 아닌 것으로 판단됩니다.

이 정보를 찾을 수 없습니다. 어떤 종속성이이 옵션을 허용합니까? 어떤 버전이 문제가 있는지 알아 내면 남은 질문은 게시 할 때 마이그레이션을 적용하는 방법입니다.

두 프로젝트는 웹 프로젝트의 마이그레이션이 두 프로젝트는 "Microsoft.AspNetCore.Identity.EntityFrameworkCore": "1.1.0"

UPDATE 1를 사용 :이 관여 무엇을 찾을 수 있었다.

"Microsoft.EntityFrameworkCore.Tools": "1.0.0-preview2-final", 
"Microsoft.EntityFrameworkCore.Design": "1.0.0-preview2-final" 

비주얼 스튜디오 데이터 컨텍스트를 찾아 게시에 마이그레이션을 적용 할 수있는 옵션을 제공 할 수 있습니다 : 내가 이러한 종속성을 사용하는 경우 것으로 보인다. 하지만 내가 좋아하는 그 의존성의 최신 버전을 사용하는 경우 : 마이그레이션을 적용하기 위해 다음

"Microsoft.EntityFrameworkCore.Tools": "1.1.0-preview4-final", 
"Microsoft.EntityFrameworkCore.Design": "1.1.0" 

해당 옵션 사라지고 게시 할 때 VS는 데이터 컨텍스트를 찾을 수 없습니다.

마이그레이션 작업과 Asp.Net Core의 최신 상태를 알아야합니다.

+1

:'dbcontext.Database.MigrateAsync()'응용 프로그램 시작시 호출의 문제가 무엇입니까? azure에 배포 할 때 배포 슬롯을 사용하는 경우 앱을 배포 한 다음 한 번 핑 (ping)하여 프로덕션 슬롯 – Tseng

+1

으로 바꾸기 전에 워밍업되도록하십시오.이 문제에 대한 토론이 있습니다. 개인적으로 마이그레이션을 적용하지 못한 경우 현재 앱과 프로덕션 환경에서 DB에 문제가 발생하지 않도록 응용 프로그램을 배포하기 전에 마이그레이션을 적용해야합니다. Startup의 일부로 코드에 포함되어있는 경우 앱을 먼저 배포 한 다음 마이그레이션을 적용해야 함을 의미합니다. 해당 마이그레이션이 적용되지 않으면 응용 프로그램이 작동을 멈추고 이전 버전을 다시 배포해야합니다. 하지만 좋은 인수가 있다면'dbcontext.Database.MigrateAsync()'를 사용하는 것이 좋습니다. – iberodev

+0

이것이 바로 Azure의 배포 슬롯에 대한 설명입니다. docs.microsoft.com/en-us/azure/app-service-web/web-sites-staged-publishing https://docs.microsoft.com/en-us 참조/azure/app-service-web/web-sites-staged-publishing (특히 "미리보기로 스왑 (다중 단계 스왑)"부분). 기본적으로 준비 슬롯에 앱을 게시하면 워밍업 (응용 프로그램을 시작하도록 IIS에 강제 호출하는 URL)을 호출 한 다음 두 URL을 전환하기 시작할 수 있습니다. 난 당신이 워밍업에 대한 URL이 성공했지만, 지금 당장은 확실하지 않다면 변경 만 할 수 있다고 생각합니다. – Tseng

답변

2

비어있는 ASP.NET 핵심 웹 API 프로젝트를 만들고 마이그레이션을 추가 한 후 Visual Studio 2017 내에서 매우 유사한 문제 (게시가 프로젝트 내에서 데이터 컨텍스트를 찾는 데 실패 함)를 발견했습니다.

작동 시키려면 다음 줄을 포함 시키십시오.csproj 파일 : PCM을 사용하는 경우

<DotNetCliToolReference Include="Microsoft.EntityFrameworkCore.Tools.DotNet" Version="1.0.0" /> 

<PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="1.1.1" />