1

코드 - 마이그레이션을 사용하고 있습니다. 이제 새 서버에 게시 할 때 데이터베이스 및 모든 테이블을 만들 때 응용 프로그램을 원합니다.기존 모델의 초기 마이그레이션을 만들 수 있습니까?

데이터베이스 버전 관리를 추적하기 때문에 자동 마이그레이션을 사용하고 싶지 않습니다. 그러나 응용 프로그램을 새 서버에 배포 할 때 현재 버전 (예 : 나중에 개정판에서 삭제되는 테이블/열 추가)을 수행하는 모든 단계를 수행하지 않아도됩니다.

전체 (POCO) 데이터 모델을 포함하는 하나의 마이그레이션을 만드는 방법이 있는지 알고 싶습니다.

답변

0

새 데이터베이스를 대상으로 연결 문자열을 변경하면 EF에서 모델을 비교하고 데이터베이스에있는 것과 함께 마이그레이션을 수행합니다. 존재하지 않으면 (새 데이터베이스) 그러면 모든 마이그레이션을 순서대로 구현하여 보유하고있는 데이터베이스와 일치하는 데이터베이스를 만듭니다. 구현하기 전에 생성 된 sql을 보려면 다음을 실행하십시오.

update-database -verbose -script 

패키지 관리자 콘솔에서 생성되는 내용을 확인하십시오.

  • 만들기 표
  • 삽입 마이그레이션
  • 역사 행 수정
  • 표 삽입
  • 마이그레이션 로그 행 등
  • ...
:

이 같이 보일 것입니다

많은 수의 마이그레이션이 있어도 모든 스크립트를 단일 스크립트로 결합하여 한꺼번에 구현할 수 있습니다.

+0

안녕하세요. 마크, 이것은 제가 의미하는 바가 아닙니다. 현재 모델 만 나타내는 마이그레이션 클래스를 생성하려고합니다. 그래서 기존의 모든 마이그레이션 클래스를 버리고 모든 테이블을 추가하는 하나의 큰 마이그레이션 클래스를 생성하고 싶습니다. 이제 문제는 리팩토링 이후에 버려진 수정으로 구성되어 있으므로 더 이상 관련이없는 많은 마이그레이션이 있다는 것입니다. –

+0

더 이상 마이그레이션이 필요하지 않은 경우 - Migrations 폴더의 모든 항목을 삭제할 수 있습니다. add-migration 명령을 실행하면 단일 스크립트 만 생성됩니다. –

+0

그래, 그게 내가 한거야. 불행히도 빈 마이그레이션 만 생성합니다. 응용 프로그램을 실행할 때 데이터베이스를 만들지 만 _MigrationHistory를 제외한 테이블은 만들지 않습니다. –

관련 문제