2015-07-20 23 views
2

我正在將django項目從1.6.11升級到1.7.9。我使用DRF 2.4.4。一旦一切工作正常,我將升級到DRF 3.xdjango 1.7 makemigrations需要依賴項,我試圖刪除

我開始使用django-oauth2提供程序,但它不能與django 1.7一起工作,所以我正在轉向django-oauth-toolkit。 備案,它不起作用,因爲HttpResponse不再接受mimetype。它必須是'content_type'。 django-oauth2-provider的PR被放棄。

我點子安裝它,並將oauth應用程序添加到INSTALLED_APPS。他們的docs建議使用syncdb,然後migrate,儘管Django 1.7 deprecated syncdb。我試圖用./manage migrate oauth2_provider遷移它失敗。它使報告:

ValueError: Dependency on unknown app: provider 

provider恰好是OAuth的舊模塊,這是再加上我的應用程序的2。 我從INSTALLED_APPS中刪除它,評論它的類的所有進口和用法,將具有FK的模型更改爲provider.oauth2.models.Client(我刪除了該字段),然後再次嘗試。我得到了同樣的錯誤。

的應用程序之一的初始遷移似乎是使用provider唯一有效的代碼:

class Migration(migrations.Migration): 

    dependencies = [ 
     migrations.swappable_dependency(settings.AUTH_USER_MODEL), 
     ('contenttypes', '0001_initial'), 
     ('provider', '__first__'), 
    ] 

然而,該次遷移後,我刪除該字段。與南我可能會做./manage.py schemamigration myapp --auto,然後migrate。 但是,當我嘗試makemigrations myapp時出現同樣的錯誤。

我完全失去了。我怎樣才能擺脫舊的oauth模塊並獲得新的模塊?我必須爲oauth2_provider運行makemigrations還是隻需要運行migrate?我的猜測是隻有migrate。爲什麼我無法通過myapp模型中的更改進行遷移?

回答

2

這發生在我身上。嘗試在引用它的初始遷移中手動刪除「提供者」應用程序行。或者,您可以刪除所有遷移並從頭開始運行「makemigrations」(請記住,對於初始遷移,您必須爲每個單獨的應用程序執行一次)。

+0

謝謝,我實際上刪除了遷移及其依賴的遷移,並再次創建它們。我想承諾從南方過渡到過渡階段,但沒有更多,但它不起作用。 –