도구

Visual Studio 2019 - 도구 - Nuget 패키지 관리자 - 패키지 관리자 콘솔을 사용했습니다.

 

내용

EF Core를 사용하면서, 모델이 변경되면 마이그레이션을 해서 DB에 적용을 해주어야 합니다.

하나의 프로젝트(API, Client 등)에 모델링 코드와 DbContext가 함께 있다면

Add-Migration [마이그레이션 Alias]
Update-Database

이 두 코드로 모두 해결이 되겠지만,

저의 경우에는 API용 프로젝트(.net5 mvc api)가 하나, 모델/뷰모델을 관리하는
프로젝트(.net5 클래스 라이브러리)가 따로 있습니다.

그래서 위의 마이그레이션 코드로 진행하려 하니, 모델이 변경된게 없어 빈 마이그레이션 파일만 생성되었습니다.

 

저의 경우처럼 별도의 프로젝트에 모델링이 있는 경우 등에는 이 링크 를 참고하시면 자세하게 보실 수 있고,

제가 해결한 방법은 아래와 같습니다.


순서

  1. Context파일(db context)을 라이브러리 프로젝트로 옮기기
  2. 데이터 모델파일들도 라이브러리 프로젝트로 옮기기
  3. Add-Migration, Update-database 등 DB적용 스크립트를 실행 할 때 -StartUpProject, -Project등 설정해주기

스크립트

마이그레이션 적용

Add-Migration [마이그레이션 이름]
-Project [클래스라이브러리프로젝트이름]
-StartupProject [실제웹어플리케이션프로젝트이름] 
-c [클래스라이브리이름.네임스페이스.Context이름]

 

데이터베이스에 적용

Update-Database 
-Project [클래스라이브러리프로젝트이름]
-StartupProject [실제웹어플리케이션프로젝트이름]
-Context [클래스라이브리이름.네임스페이스.Context이름]

 

✔ 위의 스크립트들은 보기 편하려고 여러줄에 걸쳐 사용했지만, 한 줄에 모아서 사용하는걸 추천합니다.

'개발 > ASP.NET Core' 카테고리의 다른 글

닷넷 코어 Connection String 사용하기  (0) 2017.03.11

+ Recent posts