Как я могу отменить частично выполненную миграцию? - PullRequest
0 голосов
/ 22 июня 2019

Я недавно выполнил flask db migrate и получил исключение между ними ( детали ). Миграция была выполнена только частично.

Что я сделал

Миграция выглядела так:

def upgrade():
    # ### commands auto generated by Alembic - please adjust! ###
    ...
    op.add_column('users', sa.Column('registered_on', sa.DateTime(), nullable=False))
    ...

Все до того, как было зарегистрировано Все ниже не было. Когда я снова выполнил flask db upgrade, он пожаловался на то, что ранее уже существовавшие столбцы.

Затем я попытался flask db downgrade, а затем flask db upgrade. Это сработало, но теперь все данные потеряны (неплохо, это была среда разработки).

Что я должен был сделать, чтобы не удалить все данные из базы данных, после того как миграция прошла только частично?

1 Ответ

0 голосов
/ 23 июня 2019

После исправления ошибки в скрипте миграции вы можете закомментировать операции в функции upgrade(), которые уже были применены до возникновения ошибки. Затем снова запустите обновление, чтобы выполнить оставшиеся операции. Не забудьте раскомментировать после полного применения скрипта миграции!

...