Django: Поддержание локального набора миграций, отличного от восходящего потока

Я написал патчи для проекта Django, которые вечно не интегрируются в upstream (или даже могут не интегрироваться). В связи с этим у меня есть локальные миграции, которые мне нужно поддерживать. Однако из-за того, как работает система нумерации миграций, мне приходится обновлять их номера каждый раз, когда upstream добавляет новую миграцию, а это даже не работает должным образом, поскольку создает конфликты с состоянием базы данных.

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

Как правильно поддерживать свой собственный набор миграций?

Двумя способами:

  1. используйте команду --merge, когда django обнаружит коллизию, вам придется разрешать конфликты только один раз, это позволит использовать дублирующие номера.
  2. всегда удаляйте и запускайте заново свои миграции, когда вытягиваете изменения из восходящего потока.

Каждая

ситуация индивидуальна, и только вам решать, что выбрать: 1 или 2 или переключиться.

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

Однако для больших проектов, возможно, имеет смысл использовать #1, так как это позволит избежать конфликтов в приложениях с постоянным притоком миграций.

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