2017-05-02 20 views
0

プロダクションとローカリゼーションで移行が混乱しました。最後に、生産には初期移行とローカルのみがあり、移行やその他の移行が8件あったという状況です。だから私は使用することに決めました/django.db.utils.IntegrityError:非NULL制約が失敗しました/後にpython manage.pyがゼロに移行しました

python manage.py migrate app zero 

生産とlocaly(django 1.8.7)の両方で。 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

は、ローカル・データベースをチェックしてください。

は、このエラーは通常、1つまたは複数のレコードは、NOT NULL要件

UserProfile.objects.filter(phone_number=None) 

を満たしていないときは、オブジェクトのPHONE_NUMBERフィールドを充填することによってこの問題を解決することができ起こる

を見つけない、またはオブジェクトを削除します電話番号がいっぱいです

+0

はい、非常に古いレコードを削除すると状況が改善しました。マイグレーションの問題で私がやっていることが正しいかどうかも教えてください。または少なくとも有害ではない? –

+0

あなたは私の視点から誤った手順を実行しました。新しい制約が確立されると、古いデータがこのタイプのエラーを引き起こす可能性があります。 – Guilherme

関連する問題