PM> Remove-Migration -context BloggingContext
EF Core를 사용하여 ASP.NET Core 프로젝트로 VS2015에서 실행할 때 다음 오류가 발생합니다.
System.InvalidOperationException: The migration '20160703192724_MyFirstMigration' has already been applied to the database. Unapply it and try again. If the migration has been applied to other databases, consider reverting its changes using a new migration. at Microsoft.EntityFrameworkCore.Migrations.Design.MigrationsScaffolder.RemoveMigration(String projectDir, String rootNamespace, Boolean force)
at Microsoft.EntityFrameworkCore.Design.MigrationsOperations.RemoveMigration(String contextType, Boolean force)
at Microsoft.EntityFrameworkCore.Tools.Cli.MigrationsRemoveCommand.<>c__DisplayClass0_0.<Configure>b__0()
at Microsoft.Extensions.CommandLineUtils.CommandLineApplication.Execute(String[] args)
at Microsoft.EntityFrameworkCore.Tools.Cli.Program.Main(String[] args)
The migration '20160703192724_MyFirstMigration' has already been applied to the database. Unapply it and try again. If the migration has been applied to other databases, consider reverting its changes using a new migration.
어떻게 적용을 취소 할 수 있습니까? ASP.NET Core 1.0, EF Core 및 VS2015 Update 3의 최신 릴리스를 사용하고 있습니다.
답변
사용하다:
CLI
> dotnet ef database update <previous-migration-name>
패키지 관리자 콘솔
PM> Update-Database <previous-migration-name>
예:
PM> Update-Database MyInitialMigration
그런 다음 마지막 마이그레이션을 제거하십시오.
데이터베이스에 변경 사항을 적용했기 때문에 데이터베이스 업데이트없이 마이그레이션을 제거 할 수 없습니다.
PMC를 사용하는 경우 시도 : PM> update-database 0 데이터베이스를 지우고 솔루션에서 마이그레이션 스냅 샷을 제거 할 수 있습니다.
답변
모든 마이그레이션을 완전히 제거하고 다시 시작하려면 다음을 수행하십시오.
dotnet ef database update 0
dotnet ef migrations remove
답변
여전히 Update-Database
명령을 사용할 수 있습니다 .
Update-Database -Migration <migration name> -Context <context name>
그러나 마이그레이션 이름으로 판단하면 명령이 작동하지 않을 수있는 첫 번째 마이그레이션이라고 가정합니다. __MigrationHistory
데이터베이스 의 테이블에서 항목을 삭제 한 후 Remove-Migration
명령을 다시 실행할 수 있어야 합니다. 마이그레이션 파일을 삭제하고 다시 시작할 수도 있습니다.
답변
특정 마이그레이션을 적용하지 않으려면 다음을 수행하십시오.
dotnet ef database update LastGoodMigrationName
or
PM> Update-Database -Migration LastGoodMigrationName
모든 마이그레이션을 적용 취소하려면 :
dotnet ef database update 0
or
PM> Update-Database -Migration 0
마지막 마이그레이션을 제거하려면
dotnet ef migrations remove
or
PM> Remove-Migration
모든 마이그레이션을 제거하려면
Migrations
폴더를 제거하십시오 .
마지막 몇 가지 마이그레이션을 모두 제거하려면 (모두는 아님) :
이 마이그레이션의 무리를 제거하는 명령은 없으며 우리는 단지이 몇 제거 할 수 없습니다 migrations
자신의 *.designer.cs
우리가 일관성있는 상태에서 스냅 샷 파일을 계속해야하기 때문에 파일을. 마이그레이션을 하나씩 제거해야합니다 ( To remove last migration
위 참조 ).
마지막 마이그레이션을 적용하고 제거하려면
dotnet ef migrations remove --force
or
PM> Remove-Migration -Force
답변
마지막으로 적용된 마이그레이션을 되돌리려면 다음을 수행해야합니다 (패키지 관리자 콘솔 명령).
- 데이터베이스에서 마이그레이션을 되 돌리십시오.
PM> Update-Database <prior-migration-name>
- 프로젝트에서 마이그레이션 파일을 제거하십시오 (또는 다음 단계에서 다시 적용됨).
- 모델 스냅 샷 업데이트 :
PM> Remove-Migration
UPD : 최신 버전의 Visual Studio (2017)에는 두 번째 단계가 필요하지 않은 것 같습니다.
답변
가치별로 마이그레이션을 타겟팅 할 수 있습니다.
Update-Database -Migration:0
그런 다음 제거하십시오
Remove-Migration
답변
데이터베이스에 이미 적용된 후 가장 최근의 마이그레이션을 “적용하지 않으려면”:
- SQL Server 개체 탐색기를 엽니 다 (보기-> “SQL Server 개체 탐색기”).
- 작은 삼각형을 옆으로 확장하여 프로젝트에 연결된 데이터베이스로 이동하십시오.
- “테이블”펼치기
- “dbo._EFMigrationsHistory”라는 테이블을 찾으십시오.
- 마우스 오른쪽 단추로 클릭하고 “데이터보기”를 선택하여 Visual Studio에서 테이블 항목을보십시오.
- 적용을 취소하려는 마이그레이션에 해당하는 행을 삭제하십시오 (프롬프트가 표시되면 “예”라고 경고하십시오).
- project.json 파일이있는 디렉토리의 명령 창에서 “dotnet ef migrations remove”를 다시 실행하십시오. 또는 패키지 관리자 콘솔에서 “마이그레이션 제거”명령을 실행하십시오.
이것이 도움이되고 프로젝트의 모든 마이그레이션에 적용되기를 바랍니다 … 나는 가장 최근의 마이그레이션으로 만 테스트했습니다 …
행복한 코딩!