Django + django-oauth-toolkit 迁移错误

Migration error on Django + django-oauth-toolkit

我有一个版本为 2.2.13 和 django oauth 工具包 1.0.0 的 django 应用程序。在更新到 Django 3.0 的过程中,我需要更新 django-oauth-toolkit,但是在 1.0.0 版本之后的每个版本,我 运行 都会遇到迁移问题,因为我的应用程序 (oauth2) 扩展了抽象应用程序 ( AbstractApplication) 来自 oauth2_provider 的模型(来自 django-oauth-toolkit)。

from oauth2_provider.models import AbstractApplication

class Application(AbstractApplication):
    # there are more fields added here
    pass

此自定义 oauth 应用程序 (oauth2) 有 28 个迁移,这些迁移是在项目本身内部生成的。

当我们尝试 运行 从头开始​​所有迁移(我们在我们的 CI 服务器上执行此操作)时,我们在尝试 运行 应用的迁移 0001 时遇到错误 oauth2_provider

ValueError: Related model 'oauth2.Application' cannot be resolved.

有一个问题类似于我在项目上打开的问题,https://github.com/jazzband/django-oauth-toolkit/issues/778,但提供的解决方法不起作用,我还没有找到其他解决方案。

谢谢。

当您交换应用程序模型时, 您应该创建并 运行 定义交换的迁移 设置前的应用模型OAUTH2_PROVIDER_APPLICATION_MODEL.

可以强制您的迁移以正确的顺序向 运行 提供自定义模型,方法是添加:

run_before = [
    ('oauth2_provider', '0001_initial'),
]

迁移class。

您可以找到更多详细信息here