我已经设置了一个新的Django项目(基于模板django cookie cutter)但是在第一次尝试迁移数据库时出现了postgres错误
psycopg2.ProgrammingError: relation "django_site_domain_a2e37b91_uniq" already exists
我不清楚问题是什么或如何最好地诊断?
答案 0 :(得分:0)
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