OK. Я полагаю, вы работаете с контролем версий? Сейчас очень важно определить, из чего состоят «А» и «В». Если мы махаем рукой / предполагаем, что этот аморфный кусок кода, на который мы ссылаемся, - это «A», а эта другая неопределенно определенная вещь, которую мы все помечаем как «B» - это не сработает.
Если вы пытаетесь переустановить «A» вместо «B», у вас есть два варианта:
1) извлечение и восстановление «А» с нуля (синхронизация и миграция)
2) верните «B» обратно к «A».
1) Вероятно, не будет работать, потому что вы не можете позволить себе убивать данные в БД, чтобы синхронизировать их из ничего
2) Включает миграции. Во-первых, вы должны найти миграции в «B», а не в «A». На юге все миграции для каждого приложения пронумерованы (0001, 0002, 0003 и т. Д.). Итак, предположим, что «B» находится в 050, а «A» в 0031. Пока вы извлекли «B», запустите python manage.py migrate appname 0031
, что отменит все изменения в БД, которые вы сделали для «B». Затем в вашей системе контроля версий вы извлекаете 'A' (является ли 'A' просто коммитом, тэгом или веткой)
К сожалению, вы не можете откатиться до «А» и затем сказать «не мигрировать все, чего у вас нет». Это было бы более простым решением, но тогда вам понадобится ваша миграционная система, чтобы узнать о вашей системе контроля версий, и это немного сложно.