2015-01-24 4 views
3

시간이 지남에 따라 약간의 마이그레이션 문제가 있었으며 때로는 필드가 올바르게 마이그레이션되지 않은 경우 (거의 확실하게 작업 데이터베이스에서 devdb를 가져 오기 위해 가짜 마이그레이션을 시도했기 때문에)로 진행되었습니다.Django의 모델과 마이그레이션 체인을 db verify 일관성과 비교하는 쉬운 방법이 있습니까?

자동 스키마 마이그레이션을 수행하면 모델과의 마이그레이션 체인을 검사하지만 실제 데이터베이스와 비교하여 마이그레이션 체인을 검사하지는 않습니다.

데이터베이스를 현재 모델 또는 마이그레이션 체인과 쉽게 비교하고 db, 모델 및 마이그레이션 체인이 일관성이 있는지 확인하십시오.

여러분이 마이그레이션을 삭제하고, 새로운 초기 마이그레이션을 생성하고, 유령 마이그레이션을 삭제하는 동안 위조 된 마이그레이션을 초기 단계로 마이그레이션하는 것을 상상해보십시오.

데이터베이스가 초기 마이그레이션과 동기화되었는지 쉽게 확인할 수 있습니까?

+0

'manage.py sql appname'과 실제 덤프 사이에서 diff를 실행하는 것은 어떻습니까? –

+0

흥미로운 아이디어이며 효과가있을 수 있지만 그 주위에서 더 많은 스크립팅이 필요합니다. 나는 그런 일이 간단한 표준 방식 (예 : 옵션 또는 두 가지 명령)으로 수행되기를 바랬다. – Catskul

답변

1

django-extensions 응용 프로그램은 sqldiff 관리 명령을 제공합니다.이 명령은 현재 데이터베이스와 모델 간의 차이점을 보여줍니다. 따라서 데이터베이스와 모델간에 차이가 있다면 (makemigrations 명령을 실행 한 후 마이그레이션이 동일해야 함), 알게 될 것입니다.