도구
Visual Studio 2019 - 도구 - Nuget 패키지 관리자 - 패키지 관리자 콘솔을 사용했습니다.
내용
EF Core를 사용하면서, 모델이 변경되면 마이그레이션을 해서 DB에 적용을 해주어야 합니다.
하나의 프로젝트(API, Client 등)에 모델링 코드와 DbContext가 함께 있다면
Add-Migration [마이그레이션 Alias]
Update-Database
이 두 코드로 모두 해결이 되겠지만,
저의 경우에는 API용 프로젝트(.net5 mvc api)가 하나, 모델/뷰모델을 관리하는
프로젝트(.net5 클래스 라이브러리)가 따로 있습니다.
그래서 위의 마이그레이션 코드로 진행하려 하니, 모델이 변경된게 없어 빈 마이그레이션 파일만 생성되었습니다.
저의 경우처럼 별도의 프로젝트에 모델링이 있는 경우 등에는 이 링크 를 참고하시면 자세하게 보실 수 있고,
제가 해결한 방법은 아래와 같습니다.
순서
- Context파일(db context)을 라이브러리 프로젝트로 옮기기
- 데이터 모델파일들도 라이브러리 프로젝트로 옮기기
- Add-Migration, Update-database 등 DB적용 스크립트를 실행 할 때 -StartUpProject, -Project등 설정해주기
스크립트
마이그레이션 적용
Add-Migration [마이그레이션 이름]
-Project [클래스라이브러리프로젝트이름]
-StartupProject [실제웹어플리케이션프로젝트이름]
-c [클래스라이브리이름.네임스페이스.Context이름]
데이터베이스에 적용
Update-Database
-Project [클래스라이브러리프로젝트이름]
-StartupProject [실제웹어플리케이션프로젝트이름]
-Context [클래스라이브리이름.네임스페이스.Context이름]
✔ 위의 스크립트들은 보기 편하려고 여러줄에 걸쳐 사용했지만, 한 줄에 모아서 사용하는걸 추천합니다.