Перенос модели из стороннего приложения в проектное приложение при совместимости со средами с примененными миграциями - PullRequest
0 голосов
/ 18 января 2020

Я использую одну модель из стороннего Django приложения, которое хочу переместить в новое приложение внутри моего проекта.

Проблема в том, что у меня есть некоторые из моих моделей которые имеют внешние ключи к старой модели, которые я хотел бы просто указать на новую модель. Затем миграция для них зависит от старого приложения, и я не могу сохранить старое приложение, поскольку оно несовместимо с новыми версиями Django, что приводит к появлению ошибок в командах Django.

Вот три приложения, которые представляют интерес: old_app, new_app и independent_app. Зависимый_app в настоящее время зависит от old_app и должен быть изменен в зависимости от new_app.

Если я изменю список зависимостей при переносе зависимых_app с:

dependencies = [
    ('old_app', '0001_initial'),
]

на

dependencies = [
    ('new_app', '0001_initial'),
]

Я получаю следующую ошибку в средах, использующих old_app:

django.db.migrations.exceptions.InconsistentMigrationHistory: Migration dependent_app.0001_initial is applied before its dependency new_app.0001_initial on database 'default'.

Кроме того, я настроил новую модель на то же имя таблицы, используя Meta.db_table, чтобы не беспокоиться об обновлении любого из внешние ключи в зависимом приложении к новой модели.

...