[.net] 먼저 EF 코드와 .net 코어를 사용하여 마이그레이션 스크립트를 생성 할 수 있습니까?

.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


답변