我正在为基于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中运行以上代码后立即得到的错误。有人可以帮我解决这个错误吗?
我同时运行了makemigrations
和migrate
命令。但是,仍然出现相同的错误。
我能够在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博客文章中的任何地方都没有使用它。
谢谢
答案 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
那么当程序去寻找它们时,这些表将存在。