Django:我得到了一个[关系" auth_group" syncdb之后出错]错误

时间:2015-05-25 12:24:17

标签: django postgresql

我开始了一个新的Django 1.8项目并意识到我错过了一些东西(我已经完成了初始迁移)。我从我的所有应用程序中删除了数据库(postgreSQL)并删除了migration个文件夹,以便从头开始。

现在,当我' syncdb'我收到这个错误:

django.db.utils.ProgrammingError: relation "auth_group" does not exist

当我makemigrations时,我得到了这个:

No changes detected

我做错了什么?

8 个答案:

答案 0 :(得分:18)

您可能应该尝试为应用创建migrations个模块(名为migrations的文件夹,其中包含每个目录中名为__init__.py的空文件)。然后再次运行manage.py makemigrations

答案 1 :(得分:5)

问题出在no changes detected上。请使用您的应用名称执行这些命令。我猜你没有添加它(就像我犯的错误一样):

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

答案 2 :(得分:2)

首先执行./manage.py migrate auth对我不起作用,并且每个./manage.py命令都会抛出此错误。我的问题是我在模块范围内使用Group管理器。

如果在模块范围内有这样的代码:

customers_group = Group.objects.get(name='customers')

将其移动到在运行时调用的函数中。

def xyz():
    ...
    customers_group = Group.objects.get(name='customers')

答案 3 :(得分:0)

如果已安装的应用程序中包含 django.contrib.admin ,则会出现上述错误。 按各自的顺序运行这些命令。

{
  "@context": {
    "rdf": "http://www.w3.org/1999/02/22-rdf-syntax-ns#",
    "policyid": "@id",
    "policytype": { "@id": "rdf:type",  "@type": "@id" }
   },
   "policyid" : "http://example.com/policy:0099",
   "policytype": "http://www.w3.org/ns/odrl/2/Set"
}

这对我很有用。

答案 4 :(得分:0)

可以是:

  • requirements.txt中的一个pip依赖项是使用South

    运行在Django 1.8中进行迁移的测试时,

    出现此错误。通过在详细模式下运行测试找到有问题的lib。考虑将库升级到更新版本。

  

manage.py test -v 3

  • 其中一个/ migrations文件夹可能仍有旧的South迁移文件。 可能是因为当您尝试升级Django时,其他人仍在添加迁移。使用以下命令确保每个应用程序中都存在预期的迁移文件。
  

manage.py showmigrations

答案 5 :(得分:0)

我在Django2.2迁移中遇到了类似的问题。如果有人要解决此问题,我将发表帮助。

我注释掉了主项目urls.py中所有应用程序的URL(例如my_app.urls,your_app.urls),然后运行了makemigrations,它起作用了。 我认为此错误是由于某些表格/视图引用尚未创建的模型/字段引起的。似乎django在进行迁移之前先遍历urls.py

答案 6 :(得分:0)

您的路径之一(“将核心文件夹中的urls.py与settings.py一起指向”)使导入django.contrib.auth并在调用这些视图后直接使用“ auth”的方法和属性导致出现此问题< / p>

  • 删除每个应用程序的所有迁移,但不包括“ init .py”
  • 转到项目urls.py并注释掉所有路径
  • 运行“ heroku运行python manage.py makemigrations”
  • 运行“ heroku运行python manage.py migration”

答案 7 :(得分:-1)

是INSTALLED_APPS中的django.contrib.auth吗?