마지막 마이그레이션 추가 명령을 실행 취소하려면 어떻게합니까?


84

Add-Migration명령을 사용하여 마이그레이션을 만들었지 만 해당 마이그레이션의 이름을 변경하고 싶습니다. 원하는 새 이름을 사용하여 다시 생성 할 수 있도록 마이그레이션 명령을 실행 취소하려면 어떻게해야합니까?

생성 된 파일을 삭제하는 문제입니까, 아니면 나쁜 생각 일 수 있습니까?

답변:


137

사용하지 않은 경우 Update-Database마이그레이션 파일을 삭제할 수 있습니다. 업데이트를 실행 한 경우을 사용하여 롤백 Update-Database -TargetMigration "NameOfPreviousMigration"한 다음 마이그레이션 파일을 삭제해야합니다.

참고:

http://elegantcode.com/2012/04/12/entity-framework-migrations-tips/


추가 된 첫 번째 마이그레이션이라면 어떻게됩니까?
Jimmyt1988

Jimmyt1988 @ 업데이트 - 데이터베이스 -TargetMigration를 사용 : $ InitialDatabase
세라핌

그럼 삭제 하시겠습니까? 이해가 안 돼요. 그럼 뭘 삭제 하시겠습니까?
tnk479

@ tnk479 마이그레이션 파일. 그것은 명확하게 수정 됨
콜린

그 나이가없는 EF (마찬가지로 EF 6)의 버전을 확인하는 슬픈 drop-databaseremove-migration명령
함자 Khanzada

15

당신이 아직 마이그레이션을 실행하지 않은 경우 Update-Database, 당신은 실행할 수있는 Add-Migration같은 이름 (당신이 사용해야 할 수도 다시 -Force발판을 다시 실행까지). 이것은 Add-Migration명령 의 출력에 기록됩니다 .


이 ApplicationDbContextModelSnapshot 복원되지 않습니다이 같은 좋은 해결책이 아니다
Trojaner

당신이 응답 있도록 맞아 @Trojaner stackoverflow.com/a/46921867/690958가 더 나은 솔루션입니다
알베르토 레온

파일을 정리할 수도 있습니까? 나에게는 마이그레이션 파일을 남기지 만 빈 Up () 및 Down () 메서드가 있습니다.
Dmitry Karpenko

13

명령을 사용하십시오.

Remove-migration

마지막으로 추가 된 마이그레이션을 제거하고 스냅 샷을 업데이트합니다. 데이터베이스에 영향을 미치지 않으므로 DB를 먼저 롤백해야합니다.


5
EF Core에서만.
John

나는 함께 EF 6가있을 텐데 drop-database내가 너무 그것에 익숙해 ... 명령
함자 Khanzada을

4

EntityFrameworkCore 2.0에는 모델 스냅 샷이 제공됩니다. 모델 스냅 샷을 업데이트하려면 마이그레이션 제거 명령을 실행해야합니다. 수동으로 마이그레이션을 삭제하면 EF Core가 모든 업데이트를 인식하고 스냅 샷을 되 돌린다는 것을 읽었지만 이것이 저에게 효과적이지 않았습니다.

https://docs.microsoft.com/en-us/aspnet/core/data/ef-mvc/migrations

https://docs.microsoft.com/en-us/ef/core/miscellaneous/cli/dotnet#dotnet-ef-migrations-remove


3

@Ben의 답변에 추가하려면 dotnet ef다양한 명령을 사용할 때 필요한 제거 명령이 필요합니다.

dotnet ef migrations remove

마지막 마이그레이션을 제거하고 모델 스냅 샷을 업데이트합니다.



0

다음 명령을 사용하십시오.

Update-Database nameMigration -context nameContext

그리고

Remove-migration -Context nameContext
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.