django 1.8迁移contenttype完整性错误

django 1.8迁移contenttype完整性错误,django,django-migrations,Django,Django Migrations,我将我的项目从django 1.6升级到1.8。迁移时,我遇到contenttype错误: django.db.utils.IntegrityError: null value in column "name" violates not-null constraint 详细信息:失败的行包含(31,null,django_auth,adgroup) 我尝试迁移contenttype 0002,但它告诉我: django.db.utils.ProgrammingError: relation "

我将我的项目从django 1.6升级到1.8。迁移时,我遇到contenttype错误:

django.db.utils.IntegrityError: null value in column "name" violates not-null constraint
详细信息:失败的行包含(31,null,django_auth,adgroup)

我尝试迁移contenttype 0002,但它告诉我:

django.db.utils.ProgrammingError: relation "django_content_type" already exists

如何覆盖第一个迁移文件?

发生的情况是,您的数据库已经有了迁移,但django没有意识到这一点,因为有多种原因(较旧的迁移被重命名或删除,等等)

您可以做的是展平旧的迁移,然后伪造迁移。因此,删除所有迁移,直到首次迁移


然后,运行
python manage.py makemigrations
python manage.py migrate
(可能会引发错误)和
python manage.py migrate--false initial
。这里有到的链接。这绝对不是最佳实践,但应该可以让您开始运行。初始迁移有时会导致奇怪的问题。如果这不能解决问题,请使用
--fake
而不是
fake initial
进行尝试。此外,我建议在开始这段旅程之前先转储数据库。祝你好运。

发生的事情是,您的数据库已经有了迁移,但django没有意识到这一点,因为有多种原因(较旧的迁移被重命名或删除,等等)

您可以做的是展平旧的迁移,然后伪造迁移。因此,删除所有迁移,直到首次迁移


然后,运行
python manage.py makemigrations
python manage.py migrate
(可能会引发错误)和
python manage.py migrate--false initial
。这里有到的链接。这绝对不是最佳实践,但应该可以让您开始运行。初始迁移有时会导致奇怪的问题。如果这不能解决问题,请使用
--fake
而不是
fake initial
进行尝试。此外,我建议在开始这段旅程之前先转储数据库。祝你好运。

Django 1.6数据库可能包括也可能不包括南方迁移,迁移到1.8使用内部迁移

对我来说

django-admin.py migrate --fake-initial

成功了。

Django 1.6数据库可能包括也可能不包括南方迁移,迁移到1.8使用内部迁移

对我来说

django-admin.py migrate --fake-initial

成功了。

看起来您可能在
contenttypes
应用程序中的
0002\u删除内容类型名称
迁移出错:

contenttypes
 [X] 0001_initial
 [X] 0002_remove_content_type_name
您可以使用以下方法撤消该操作:

./manage.py migrate contenttypes 0001 --fake
然后正确运行
0002
迁移,以便从
contenttypes
表中删除name列:

./manage.py migrate contenttypes

然后再次尝试运行应用程序的迁移。

看起来您可能在
contenttypes
应用程序中的
0002\u remove\u content\u type\u name
迁移出错:

contenttypes
 [X] 0001_initial
 [X] 0002_remove_content_type_name
您可以使用以下方法撤消该操作:

./manage.py migrate contenttypes 0001 --fake
然后正确运行
0002
迁移,以便从
contenttypes
表中删除name列:

./manage.py migrate contenttypes

然后再次尝试运行应用程序的迁移。

您可以从数据库中删除此表,然后重新运行迁移可能的重复项您可以从数据库中删除此表,然后重新运行迁移可能的重复项