django 1.8 迁移内容类型完整性错误
django 1.8 migrations contenttype integrity error
我将我的项目从 django 1.6 升级到 1.8。迁移时,我收到内容类型错误:
django.db.utils.IntegrityError: null value in column "name" violates not-null constraint
详细信息:失败行包含(31,空,django_auth,广告组)。
我尝试迁移 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 --fake-initial
。这是 link 到 django docs。这绝对不是最佳做法,但应该让你起床 运行ning。初始迁移有时会导致奇怪的问题。如果这不能解决问题,请尝试使用 --fake
而不是 fake-initial
。此外,我建议在开始此旅程之前转储数据库。祝你好运。
Django 1.6 数据库可能包含也可能不包含南方迁移,迁移到 1.8 会使用内部迁移。
对我来说,
django-admin.py migrate --fake-initial
成功了。
您可能 --fake
d contenttypes
应用中的 0002_remove_content_type_name
迁移有误:
contenttypes
[X] 0001_initial
[X] 0002_remove_content_type_name
您可以使用以下方法撤消:
./manage.py migrate contenttypes 0001 --fake
然后正确地 运行 0002
迁移,以便名称列从 contenttypes
table:
中删除
./manage.py migrate contenttypes
然后再次尝试 运行迁移您的应用程序。
我将我的项目从 django 1.6 升级到 1.8。迁移时,我收到内容类型错误:
django.db.utils.IntegrityError: null value in column "name" violates not-null constraint
详细信息:失败行包含(31,空,django_auth,广告组)。
我尝试迁移 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 --fake-initial
。这是 link 到 django docs。这绝对不是最佳做法,但应该让你起床 运行ning。初始迁移有时会导致奇怪的问题。如果这不能解决问题,请尝试使用 --fake
而不是 fake-initial
。此外,我建议在开始此旅程之前转储数据库。祝你好运。
Django 1.6 数据库可能包含也可能不包含南方迁移,迁移到 1.8 会使用内部迁移。
对我来说,
django-admin.py migrate --fake-initial
成功了。
您可能 --fake
d contenttypes
应用中的 0002_remove_content_type_name
迁移有误:
contenttypes
[X] 0001_initial
[X] 0002_remove_content_type_name
您可以使用以下方法撤消:
./manage.py migrate contenttypes 0001 --fake
然后正确地 运行 0002
迁移,以便名称列从 contenttypes
table:
./manage.py migrate contenttypes
然后再次尝试 运行迁移您的应用程序。