PostgreSQL Django迁移错误 - 域已经退出

时间:2016-02-03 21:51:23

标签: django postgresql

我已经设置了一个新的Django项目(基于模板django cookie cutter)但是在第一次尝试迁移数据库时出现了postgres错误

psycopg2.ProgrammingError: relation "django_site_domain_a2e37b91_uniq" already exists

我不清楚问题是什么或如何最好地诊断?

1 个答案:

答案 0 :(得分:0)

What is SITE_ID

  

Django是根据报纸上开发的一组脚本创建的,   在多个域上发布内容;使用一个单一的内容库。

     

这是“站点”模块的所在。其目的是标记   内容显示给不同的域。

     

在django的早期版本中,startproject脚本会自动   将django.contrib.sites应用程序添加到INSTALLED_APPS,以及何时   您执行了syncdb,则将带有URL example.com的默认站点添加到   您的数据库,因为这是第一个站点,所以其ID为1,   这就是设置的来源。

     

请记住,从1.6开始,此框架未启用   默认。因此,如果需要,必须将其启用

     

SITE_ID设置为您的项目设置默认站点。所以,如果你   不要指定站点,这是它将使用的站点。

要解决的方法:

增量SITE_ID

1. Increment `SITE_ID` variable in settings.py
2. python manage.py makemigrations
3. python manage.py migrate --run-syncdb

缺点:必须在没有充分理由的情况下增加SITE_ID

尝试在没有--run-syncdb的情况下进行迁移:

1. python manage.py makemigrations
2. python manage.py migrate

注意:可能必须尝试多次,然后才能起作用。不确定为什么,可能是因为我正在删除pvc