.Net Core로 MVC 애플리케이션을 구축 중이며 마이그레이션 스크립트를 생성해야합니다.
EF6을 사용하여 명령을 실행했습니다.
update-database -script
하지만 .net Core에서 똑같이하려고 할 때 다음 예외가 발생합니다.
Update-Database : 매개 변수 이름 ‘script’와 일치하는 매개 변수를 찾을 수 없습니다.
EF Core에 상응하는 것이 있는지 알고 있습니까?
답변
EF 문서에 따라 Script-Migration
명령 을 사용할 수 있습니다 .
모든 마이그레이션을 스크립트로 작성하려면 패키지 관리자 콘솔에서 간단히 호출 할 수 있습니다. 마지막 마이그레이션의 변경 사항을 스크립팅하려면 다음과 같이 호출 할 수 있습니다.
Script-Migration -From <PreviousMigration> -To <LastMigration>
문서를 확인하십시오. 명령에 대한 몇 가지 옵션이 더 있습니다.
답변
dotnet core cli를 사용하여 스크립트를 생성 할 수 있습니다.
dotnet ef migrations script
또한 새로운 power shell out-file
명령으로 이것을 파일에 넣을 수 있습니다 .
dotnet ef migrations script | out-file ./script.sql
답변
dotnet ef migrations script --help
Usage: dotnet ef migrations script [arguments] [options]
Arguments:
<FROM> The starting migration. Defaults to '0' (the initial database).
<TO> The ending migration. Defaults to the last migration.
Options:
-o|--output <FILE> The file to write the result to.
-i|--idempotent Generate a script that can be used on a database at any migration.
-c|--context <DBCONTEXT> The DbContext to use.
-p|--project <PROJECT> The project to use.
-s|--startup-project <PROJECT> The startup project to use.
--framework <FRAMEWORK> The target framework.
--configuration <CONFIGURATION> The configuration to use.
--runtime <RUNTIME_IDENTIFIER> The runtime to use.
--msbuildprojectextensionspath <PATH> The MSBuild project extensions path. Defaults to "obj".
--no-build Don't build the project. Only use this when the build is up-to-date.
-h|--help Show help information
-v|--verbose Show verbose output.
--no-color Don't colorize output.
--prefix-output Prefix output with level.
그래서, 당신은 시도 할 수 있습니다
dotnet ef migrations script ver1 ver2
dotnet ef migrations script ver1 ver2 -o ./script.sql
이것은 .Net Core 2.1에서 작동합니다.
답변
매개 변수를 Script-Migration으로 되돌려 마이그레이션을 롤백하는 스크립트를 생성 할 수도 있습니다. 예를 들어, BadLatestMigration 및 GoodPreviousMigration의 두 마이그레이션이있는 경우 다음 명령을 사용하여 GoodPreviousMigration으로 되돌릴 수 있습니다.
Script-Migration BadLatestMigration GoodPreviousMigration
나중에 Remove-Migration을 확인하여 잘못된 마이그레이션을 제거하십시오.
Remove-Migration
이것은 .Net Core 2.2.0에서 작동합니다.
답변
이것은 또한 SQL 만 생성합니다.
Update-Database -script -TargetMigration TO -SourceMigration FROM