2017-05-02 3 views
0

프로덕션 및 localy에서 마이그레이션과 관련이 있습니다. 마지막으로 상황에 따라 초기 마이그레이션과 로컬라이제이션이 있었지만 마이그레이션에는 8 가지가있었습니다. 그래서 나는 생산과 지역 (django 1.8.7)에서 모두/django.db.utils.IntegrityError : NOT NULL 제약 조건이/python manage.py가 0으로 마이그레이션 된 후에 실패했습니다.

python manage.py migrate app zero 

을 사용하기로 결정했다. prodcution에서는 작동했지만 로컬에서는 makemigrations 또는 migrate 명령 이전에 표시되지 않은 오류가 발생했습니다.

django.db.utils.IntegrityError: NOT NULL constraint failed: app_userprofile__new.phone_number 

몇 가지 시도를 시도한 후 오류가 발생하여 명령 이전 후에도 표시되기 시작했습니다.

모델 자체 :

class UserProfile(models.Model): 
    user = models.OneToOneField(User) 
    phone_number = models.IntegerField(null=True, blank=True, default=None) 

답변

0

로컬 데이터베이스를 확인합니다. 하나 이상의 레코드가 안

또는 삭제 개체를 발견 이

당신은 객체의 PHONE_NUMBER 필드를 작성하여이 문제를 해결할 수있는 NULL NOT 요구 사항

UserProfile.objects.filter(phone_number=None) 
을 충족하지 않는 경우

이 오류는 일반적으로 발생 전화 번호가 가득 찼습니다.

+0

예, 아주 오래된 레코드를 삭제하면 상황을 도왔습니다. 마이그레이션 문제로 내가하고있는 일이 올바른지 말할 수 있습니까? 또는 적어도 유해하지 않은가? –

+0

내 견해에서 잘못된 절차를 수행하지 않았습니다. 새 제약 조건이 설정되면 이전 데이터로 인해 이러한 유형의 오류가 발생할 수 있습니다. – Guilherme