使用Django 1.7.5,我更改了User_Profile通過添加一個字段:Django的遷移壞了,也不會忘記一被刪列
school = models.CharField(max_length = 255, blank=True, default="")
然後,
$ python manage.py makemigrations
沒問題。它添加了該字段。接下來,
$ python manage.py migrate
給我:
django.db.utils.IntegrityError: mathbreakers_userprofile__new.school may not be NULL
嗯哦。那麼,通過將字段default=""
或blank=True
嘗試不同的事情後,什麼都不起作用。忘記它,我刪除了該領域,並將模型恢復到一切正常時的樣子。模型看起來像以前一樣,我運行makemigrations,它刪除字段(它說)。大!
然而,
$ python manage.py migrate
仍然導致了同樣的錯誤,抱怨我說,然後刪除該字段。就好像我不能讓django忘記那個領域存在一樣。但它不存在於我的models.py文件中。我該如何解決?那個領域在哪裏?它是否在我的SqlLite中,我應該從那裏手動刪除它?
注意:我已手動刪除損壞的遷移文件,並在更改之前還恢復爲以前的GIT版本。沒有奏效,python manage.py migrate
似乎依然被打破..
您以前是否已經擁有該字段,然後進行更改? – dietbacon