테스트 및 라이브 DB가 있습니다. 테스트 데이터베이스 마이그레이션의 경우 패키지 관리자 콘솔에서 Add-Migration ...
및 Update-Database
구문을 사용합니다. 하지만 라이브 DB에 대해서는 앱이 시작될 때 프로그래밍 방식으로 수행하려고합니다.Entity Framework 핵심 프로그래밍 방식으로 마이그레이션 적용
다음 코드는 나에게 도움이되지 않았다 : 나는 존재하지 않는 테이블에 레코드를 추가하려고 할 때 오류 Invalid object name 'TempTenants'
이
context.Database.Migrate();
. 이게 내 새 테이블이야.
그러나 나는 _EFMigrationsHistory
테이블을 가지고 있습니다. 그리고 적용되지 않은 마이 그 레이션도 있습니다. 하지만 새 테이블이 보이지 않습니다.
테스트 DB에서 수동으로 테이블을 제거하고 오류를 재현하려고하면 같은 결과가 나타납니다.
따라서 context.Database.Migrate();
은 존재하지 않는 모든 마이 그 레이션이있는 새 db 만 작성하고 기존 db를 업데이트 (마이그레이션 적용)하지는 않습니다.
그럴 수 있습니까? 어떻게 해결할 수 있습니까?
"나에게 도움이되지 못했습니다." 왜? 어떻게 된 거예요? 에러 메시지? 또한 초기에 마이 그 레이션에 의해 생성 된 db도있었습니다 ('__EFMigrationsHistory' 테이블이 있습니까?)? – Tseng
@Tseng 제 질문을 업데이트했습니다. 제발. 제발. –
시작시 예외가 없습니까? 로그는 무엇을 읽나요? 사용자가 데이터베이스 서버에 대한 충분한 쓰기 권한을 가지고 있습니까? (ALTER/CREATE 문) – Tseng