psycopg2.errors.UndefinedTable:关系“ sso_server_consumer”不存在

时间:2020-10-09 13:56:59

标签: python django single-sign-on psycopg2

我正在为基于python的平台实现Django-Simple-SSO。我正在关注此博客以实施SSO:

https://medium.com/@MicroPyramid/django-single-sign-on-sso-to-multiple-applications-64637da015f4

此代码是django-simple-sso服务器端的步骤3。

    from simple_sso.sso_server.models import Token, Consumer

    Consumer.objects.create(public_key='your_application_public_key', private_key='your_application_private_key', name='your_application_name')

psycopg2.errors.UndefinedTable:关系“ sso_server_consumer”不存在 –这是我在django shell中运行以上代码后立即得到的错误。有人可以帮我解决这个错误吗?

我同时运行了makemigrationsmigrate命令。但是,仍然出现相同的错误。

我能够在django-admin页面的标题Consumers下看到SSO_SERVER表。但是,当我单击该Consumers表时,出现此错误页面:

ProgrammingError at /admin/sso_server/consumer/
relation "sso_server_consumer" does not exist
LINE 1: SELECT COUNT(*) AS "__count" FROM "sso_server_consumer"

又为什么要导入Token?由于该sso博客文章中的任何地方都没有使用它。

谢谢

2 个答案:

答案 0 :(得分:1)

我也遇到了同样的情况。我的错误是在集成 postgreSQL 后我没有运行迁移。设置好postgreSQL数据库后,运行这两条命令:

python manage.py makemigrations
python manage.py migrate

对模型进行更改后,您想再次运行这两个命令:

python manage.py makemigrations
python manage.py migrate --run-syncdb

它对我有用,希望它对你有用。

一切都好!!!

答案 1 :(得分:0)

此错误意味着Django-Simple-SSO所需的表在数据库中不存在。

如果您已将打包程序添加到您的环境中并安装了该应用程序,则最有可能是因为您尚未进行迁移并没有应用迁移。请执行以下操作:

python manage.py makemigrations

python manage.py migrate

那么当程序去寻找它们时,这些表将存在。