Как применить миграцию базы данных при переходе на более новую ветку git в проекте Flask-Python? - PullRequest
0 голосов
/ 28 марта 2019

Я работал над веткой с более ранней точки в проекте с открытым исходным кодом Flask-Python.В проекте есть один докер-контейнер для веб-приложения и один для базы данных postgres.Я переключился на свою текущую ветку, в которой уже есть миграция для нового поля в базе данных.Когда я проверял базу данных из докера с помощью psql, соответствующего поля там не было.

Я запустил flask db stamp head, и он сказал applying stamp revision 3f8ca0b9fe63, что было миграцией, которая создала новое поле.Однако после этого я проверил базу данных в psql, и поле все еще не было там.Когда я запустил flask db upgrade, поле все еще не применялось.Когда я запустил flask db migrate, он сгенерировал новую миграцию для поля, но я не хочу создавать новую миграцию, потому что у меня она уже есть.

Возможно, сегодня я отредактировал существующую миграцию.миграция и изменила имя файла с 3f8ca0b9fe63_.py на 3f8ca0b9fe63_add_uii_to_depts.py.Я также заменил """empty message на """adds the unique_internal_identifier string column to the departments table.

Почему колба не применяет эту миграцию к базе данных?

Мне было трудно погуглить эту ошибку, потому что она продолжает возвращать информацию об алембических ветвях вместо веток git.Я прочитал это обсуждение Reddit, https://www.reddit.com/r/django/comments/24mma5/how_to_manage_switching_back_and_forth_between/,, но я все еще не уверен, как решить проблему.

ОБНОВЛЕНИЕ: Я решил эту проблему и хотел включить свое решениеВ случае, если кто-то с подобной проблемой найдет мой вопрос в будущем.Я запустил flask db current, чтобы подтвердить, что в моей базе данных была версия 3f8ca0b9fe63.Затем я запустил flask db history, чтобы увидеть список миграций, и увидел, что предыдущий номер ревизии был 2a9064a2507c.Я запустил flask db stamp 2a9064a2507c, чтобы установить базу данных на эту ревизию без выполнения каких-либо миграций.Я подтвердил, что это было успешно, запустив flask db current снова.Наконец, я запустил flask db upgrade 3f8ca0b9fe63, чтобы применить миграцию.Я подтвердил, что все прошло успешно, снова запустив flask db current и проверив таблицу базы данных в psql.Теперь появится необходимый столбец.

...