繁体   English   中英

Django中的Python社交认证,makemigrations检测不到任何变化

[英]Python social auth in Django, makemigrations detects no changes

我正在按照文档在我的django项目上获取python社会认证https://python-social-auth.readthedocs.org/en/latest/configuration/django.html

'social.apps.django_app.default',添加到我的settings.py中的INSTALLED_APPS之后我运行:

python manage.py makemigrations

我明白了

No changes detected

这个命令不应该做某事。 因为没有这个,我无法迁移以创建auth所需的表。

编辑:

我也尝试过这个命令,结果仍然得到了相同的结果

python manage.py makemigrations main

其中'main'是我的应用程序的名称

今天我遇到了这个问题。 错误在文档本身。

你应该直接运行$ python manage.py migrate 它在数据库中创建表。

所有旧的教程都使用makemigrations ,我认为它是在早期版本的django中使用的。

我的答案将涵盖一些基础知识,以便轻松理解这类错误。

让我在最新版本的Django中清楚一些关于迁移的基本术语(从1.7到开发版)。

在旧版本的Django中,One必须在模型中进行更改(最终在数据库中),然后One必须使用South应用程序在数据库中应用更改而不影响旧数据库。

Django开发者社区在Django 1.7中和之后都包含了这个南方应用程序,并提供了一些简单的命令来应用迁移。

当一个人安装新应用程序(上面的问题场景)或者一个人在现有模型中进行更改并希望在数据库中应用更改时,就必须告诉数据库他们想要做出哪些更改。 要做到这一点,必须进行迁移,以下是命令。

$ python manage.py makemigrations app_name

或者如果它是初始的,则无需指定app_name,它将考虑所有应用程序。

此命令将生成迁移文件,其中将包含数据库的说明,以指示哪些表以及该表的属性是什么,表之间的关系是什么以及当前表中的更改等等。

现在必须在命令下运行才能在数据库中应用此所有更改。

$ python manage.py migrate app_name

或者如果是初始,则无需指定app_name。

如果您有任何问题,请拍摄任何问题,请查看Django 关于迁移的官方文档以获取更多信息。

可能的原因是您的项目尚未使用任何“社交”应用程序的数据库模型。 在您的urls.py添加网址,将其链接到“社交”网址。

到Django <1.8

INSTALLED_APPS ['social.apps.Django_appConfig',]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM