Ошибка миграции на 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'),
]
в миграционный класс.
Вы можете найти более подробную информацию здесь