2014-12-18 4 views

ответ

2

Нет автоматического способа сделать это, но это довольно просто сделать это вручную. Для иллюстрации у вас есть следующие миграции: от A до E и все миграции применяются к базе данных (текущий - E). Вы хотите, чтобы раздавить С помощью Е.

A > B > C > D > E 
  1. Скопируйте содержимое upgrade и downgrade функций из C и D в E. Поддерживать порядок операций и удаления избыточных операций (в вашем примере вы бы на самом деле просто заканчивается содержанием E).
  2. Измените down_revision из E на B вместо D.
  3. Удалить C и D, которые больше не подключены к графику.
+2

Да, но разве это не сломало бы внутреннюю цепь миграций alembic? Таким образом, было бы невозможно отказаться от предыдущей не раздавленной миграции? –

+0

Исправить. Это относится к обстоятельствам, когда это не имеет значения, например. потому что это нормально, чтобы перейти на уровень B или потому, что понижение даже не ожидается. – Gallaecio

Смежные вопросы