Programing

EF 5 코드 우선 마이그레이션에서 전체 SQL 스크립트 생성

crosscheck 2020. 6. 26. 08:15
반응형

EF 5 코드 우선 마이그레이션에서 전체 SQL 스크립트 생성


Entity Framework 5 Code First Migrations를 사용하여 초기 (빈) 상태에서 최신 마이그레이션까지 전체 데이터베이스 스크립트를 작성하려면 어떻게해야합니까?

MSDN 블로그 의 블로그 게시물 에서이 작업을 제안하지만 빈 스크립트를 만드는 것 같습니다.

Update-Database -Script -SourceMigration: $InitialDatabase

API가 변경된 것 같습니다 (적어도 나를 위해 작동하지 않습니다).

패키지 관리자 콘솔에서 다음을 실행하면 예상대로 작동합니다.

Update-Database -Script -SourceMigration:0

Matt wilson의 답변에 추가하기 위해 백업을 수행하지 않은 코드 우선 엔터티 클래스가 많았지 만 데이터베이스는 없었습니다. 따라서 Entity Framework 프로젝트에서 다음을 수행했습니다.

Visual Studio에서 패키지 관리자 콘솔을 열고 다음을 입력하십시오.

Enable-Migrations

Add-Migration

마이그레이션에 'Initial'과 같은 이름을 지정한 다음 마이그레이션을 작성하십시오. 마지막으로 다음을 입력하십시오.

Update-Database

Update-Database -Script -SourceMigration:0

마지막 명령은 엔터티 클래스에서 데이터베이스 테이블을 생성합니다 (엔터티 클래스가 제대로 구성된 경우).


엔터티 프레임 워크 코어를 사용하는 사람이라면 여기까지입니다. 이것이 당신이하는 방법입니다.

# Powershell / Package manager console
Script-Migration

# Cli 
dotnet ef migrations script

-Fromand -To매개 변수를 사용하여 데이터베이스를 특정 버전으로 업데이트하는 업데이트 스크립트를 생성 할 수 있습니다 .

Script-Migration -From 20190101011200_Initial-Migration -To 20190101021200_Migration-2

https://docs.microsoft.com/en-us/ef/core/managing-schemas/migrations/#generate-sql-scripts

이 명령에는 몇 가지 옵션이 있습니다.

에서 마이그레이션 스크립트를 실행하기 전에 데이터베이스에 적용 마지막으로 마이그레이션해야합니다. 마이그레이션이 적용되지 않은 경우 0이를 지정하십시오 (기본값).

마이그레이션 스크립트를 실행 한 후 데이터베이스에 적용되는 마지막 마이그레이션입니다. 기본값은 프로젝트의 마지막 마이그레이션입니다.

나무 등의 스크립트를 선택적으로 생성 할 수 있습니다. 이 스크립트는 데이터베이스에 아직 적용되지 않은 마이그레이션 만 적용합니다. 이는 데이터베이스에 마지막으로 적용된 마이그레이션이 무엇인지 정확히 모르거나 각각 다른 마이그레이션에있을 수있는 여러 데이터베이스에 배포하는 경우에 유용합니다.

참고 URL : https://stackoverflow.com/questions/13939404/generate-full-sql-script-from-ef-5-code-first-migrations

반응형