簡體   English   中英

從django.db導入模型,遷移ImportError:無法導入名稱遷移

[英]from django.db import models, migrations ImportError: cannot import name migrations

所以我開始在我的Django Web服務器上遇到南方的一些問題。 每次使用此輸出遷移命令失敗:

from django.db import models, migrations

ImportError: cannot import name migrations 

(在此之上,錯誤顯示無法遷移的文件的路徑)

我的Django版本是1.5.1,而我的南版本是0.8.4

讓我最煩惱的是模塊django.db.migrations無處可尋。

有任何想法嗎?

遷移是在Django 1.7中引入的; 你使用1.5。

這是一個解釋這個的文檔鏈接 如果您使用的是舊版本的Django,則South是最受歡迎的數據遷移選項。


編輯

所以Django Rest Framework導致錯誤。 從他們的文件:

rest_framework.authtoken應用程序包括將創建authtoken表的Django本機遷移(對於Django版本> 1.7)和South遷移(對於Django版本<1.7)。

注意:從REST Framework v2.4.0使用South和Django <1.7需要升級South v1.0 +

您必須將South升級到0.8.4以上的版本。

我認為OP沒有將遷移導入到他正在編寫的腳本中,其中一個由schemamigration創建的自動腳本可能導致了這個問題。

這個錯誤突然開始出現在我之前遷移工作的地方,我發現它與Django == 1.6.1和South == 0.8.4的版本沒有關系,但我的shell對於哪個virtualenv感到困惑我在用。 我已經退出一個虛擬環境並取消激活,並使用“workon”啟動另一個虛擬環境並運行模式遷移以更改字段的名稱。 當我運行./manage migrate時,我收到了錯誤。 我退出了shell並再次啟動了虛擬環境,一切都很好。

首先,您永遠不會導入migrations 它不是要導入的模塊,它是一個執行的命令工具。

其次,遷移是在1.7版本中引入Django的,你說你使用的是1.5,所以你將無法使用它。

在Django 1.7之前,人們曾經與South合作,因為South使您能夠在數據庫中進行遷移。 使用Django 1.7,你不再需要South了,因為Django中已經包含了遷移。 換句話說,South在1.7版本中包含在Django中。

看一下這個鏈接: https//docs.djangoproject.com/en/1.7/topics/migrations/

他們解釋說他們包括遷移到Django。

實際上,South的最后一個版本是版本1.0,他們宣布他們不會發布更多版本,因為他們正在開發包含South的Django 1.7版本。 它們將支持當前版本,但不會添加更多功能。

看一下這個鏈接: http//south.readthedocs.org/en/latest/releasenotes/1.0.html

他們解釋說,1.0是South的最后一個主要版本,因為他們正致力於Django 1.7遷移。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM