2015-07-20 24 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

谢谢,我实际上删除了迁移及其依赖的迁移,并再次创建它们。我想承诺从南方过渡到过渡阶段,但没有更多,但它不起作用。 –