2011-01-27 3 views
2

저는 장고에서 데이터베이스 마이그레이션을 관리하기 위해 South (버전 0.6, Ubuntu Lucid Lynx에 패키지 된 버전)을 사용하고 있으며 현재 SQLite를 백엔드로 사용하고 있습니다.South에서 실패한 마이그레이션을 어떻게 복구해야합니까?

./manage.py startmigration myapp --auto added_new_column 

... 재치있는 모습 마이그레이션을 생성 : 내가 가진 열을 추가 마이그레이션을 생성 상황을 가로 질러왔다. 나는 다음과 마이그레이션을 적용 할 때 그러나 :

./manage.py migrate myapp 

내가 추가 된 열이 NULL이 아닌 이었기 때문에 나는 오류가 발생했습니다,하지만 난 디폴트 값을 지정하지했다 :

ValueError: You cannot add a null=False column without a default value. 

무엇 이 방법으로 마이그레이션이 실패하고 다시 돌아가서 다시 생성하려면 어떻게해야할까요? (실제로 내가 수행 한 작업, 즉 마이그레이션을 삭제하고 새 작업을 생성 한 작업은 몇 가지 추가 문제를 일으켰습니다.) 아마도이 문서에 대해 확실한 내용을 놓친 것입니다 ...

+0

당신은'migrate app --list'를 사용하여 어느 마이그레이션을 사용하고 있는지 확인할 수 있습니다 –

답변

4

이 경우 마이그레이션에 실패했습니다. db에 기록되지 않으므로 이전 버전을 안전하게 제거하고 다시 만들 수 있습니다. 또한 당신은 새로운 남쪽 버전을 사용하여 시도 할 수 있습니다, 나는 그들이 단계를 만드는 NULL이 아닌 필드에 대한 기본 검사를 추가 믿습니다.

+0

고마워요 - 저는'startmigration myapp --auto'가 db에 영향을 미쳤다고 생각했지만 실제로는 나중에 내가 시도한 단계들. –

관련 문제