Django 1.8迁移 - 关系" django_content_type"已经存在

时间:2015-06-16 18:58:31

标签: django postgresql django-1.8

我在尝试迁移时知道为什么会出现此错误?

  

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

我正在使用Django 1.8& PostgreSQL的

3 个答案:

答案 0 :(得分:5)

迁移时,您需要使用'--fake-initial'选项;它过去是隐含的,但现在已经明确:

https://docs.djangoproject.com/en/1.8/ref/django-admin/#django-admin-option---fake-initial

引用:

  

此选项适用于首次运行迁移时使用   一个预先存在使用迁移的数据库。

祝你好运!

答案 1 :(得分:3)

我和许多人一样,并不真正理解这个问题。我能够设计出适合我的解决方案。

  1. 注释掉所有自定义安装的应用。所以,你只有Django的东西。
  2. 仅迁移身份验证:./manage.py migrate auth
  3. 迁移其他所有内容:./manage.py migrate
  4. 撤消第1步。
  5. 迁移您的所有应用:./manage.py migrate
  6. 祝你好运!

答案 2 :(得分:1)

@ Josh的解决方案适用于我,并进行了以下更改。在第1步之前,我重新添加了缺少的列:

ALTER TABLE django_content_type ADD COLUMN name character varying(50) NOT NULL DEFAULT 'run migrate.py';

正在运行python manage.py migrate auth会删除此列,因此可能会在migrate的某些早期版本中进行一项或多项其他更改失败。

在步骤3中运行migrate时,我添加了--fake-initial标记:

python manage.py migrate --fake-initial

似乎一切都恢复正常。