[英]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。
可能的原因是您的項目尚未使用任何“社交”應用程序的數據庫模型。 在您的urls.py
添加網址,將其鏈接到“社交”網址。
到Django <1.8
INSTALLED_APPS ['social.apps.Django_appConfig',]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.