用了一段時間的 python 的 django 框架,在修改 sqlite 數據庫的時候遇到如下錯誤:django.db.utils.IntegrityError: NOT NULL constraint failed: new__ImageRecognition_answercx.user_id
其中 ImageRecognition 是 app 的名稱。這個錯誤是發生在我在 ImageRecognition 項目下的 models.py 中的 AnswerCX 函數中使用添加了 user 字段,而這個字段是之前存在后來又被我刪除了,現在想要重新添加的,我的添加語法是: user = models.ForeignKey(User, on_delete=models.CASCADE) ,但是結果就報錯了,后來看了很多資料,就算修改成 user = models.ForeignKey(User, on_delete=models.CASCADE, null=True, blank=True, default=None) 也是報錯,后來終於找到了解決方案,分享給大家。
第一步,到當前 app 所在的文件夾下,我的 app 名字 ImageRecognition,然后找到 migrations 文件,找到前綴是 000 開頭的文件,從你出錯的地方開始刪除文件。我看了下這個 app 下數據庫的變化都存在這里,所以實在不懂操作,可以適當刪除到你開始出錯的地方。
第二步:刪除后再次運行以下兩條語句
python3 manage.py makemigrations