Ошибка миграции на Django + django-oauth-toolkit

У меня есть приложение django версии 2.2.13 и набор инструментов django oauth 1.0.0. Для обновления до 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, но предоставленный обходной путь не работает, и я не нашел другого решения для нее.

Спасибо.

1 ответ

Решение

При замене модели приложения следует создать и запустить миграцию, определяющую замененную модель приложения, до установки OAUTH2_PROVIDER_APPLICATION_MODEL.

Можно принудительно выполнить миграцию, предоставив настраиваемую модель для запуска в правильном порядке, добавив:

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

в миграционный класс.

Вы можете найти более подробную информацию здесь

Другие вопросы по тегам