Любой, кто работал над старой кодовой базой, знаком с этой проблемой: количество миграций в вашей папке версий выходит из-под контроля. База данных, используемая вашим приложением сегодня, совсем не похожа на базу данных, с которой она была запущена. Или, может быть, более часто встречаются миграции, которые могут работать для немедленного обновления, но каким-то образом они лишают возможности откатывать / воспроизводить миграции от начала до конца. В обоих случаях было бы неплохо раздавить миграции, чтобы имитировать начало с нуля.
Я пытался найти полный пример того, как подавить миграции для приложений Flask с использованием SQLalchemy и Alembic. Самое близкое, что я нашел, это https://alembic.sqlalchemy.org/en/latest/cookbook.html:
# inside of a "create the database" script, first create
# tables:
my_metadata.create_all(engine)
# then, load the Alembic configuration and generate the
# version table, "stamping" it with the most recent rev:
from alembic.config import Config
from alembic import command
alembic_cfg = Config("/path/to/yourapp/alembic.ini")
command.stamp(alembic_cfg, "head")
Однако это краткое объяснение не объясняет источник my_metadata
, и мне неясно, что должен содержать alembic.ini
в порядкечтобы завершить эту задачу. Кто-нибудь знает полный пример этой задачи?