Приложения без миграций не должны иметь связей с приложениями с миграциями. Почему?

В документах django есть неясный параграф:

Приложения без миграций не должны иметь отношений (ForeignKey, ManyToManyField и т.д.) к приложениям с миграциями. Иногда это может работать, но это не поддерживается.

У меня

5-летний опыт работы и я никогда не сталкивался с проблемами в таких случаях. В каком случае опасно иметь отношение к "приложениям с миграциями" ?

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

Представьте, что у нас есть 2 приложения:

  • Без миграций: Это приложение управляет своими моделями с помощью ручных схем или унаследованных методов.
  • С миграциями: Это приложение управляется и отслеживается django посредством миграций, применяемых к db
  • .

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

В общем случае не рекомендуется управлять несколькими приложениями разными способами. В конечном итоге это приведет к проблемам.

Я написал это, основываясь на своем понимании django и миграций. Не воспринимайте это как факт. Мне просто не понравился первый комментарий, который вы получили.

Вернуться на верх