首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Alembic中压缩迁移?

如何在Alembic中压缩迁移?
EN

Stack Overflow用户
提问于 2019-10-22 00:16:10
回答 1查看 1.4K关注 0票数 3

任何使用过旧代码库的人都熟悉这个问题: versions文件夹中的迁移数量变得无法控制。您的应用程序现在使用的数据库看起来与它最初使用的数据库完全不同。或者,也许更常见的情况是,引入了迁移,这些迁移可能适用于即时更新,但不知何故,它们破坏了从头到尾恢复/重放迁移的能力。在这两种情况下,挤压迁移以模拟重新开始是很好的。

我一直在努力寻找一个完整的例子,说明如何使用SQLalchemy和Alembic来压缩Flask应用程序的迁移。我找到的最接近的东西是https://alembic.sqlalchemy.org/en/latest/cookbook.html

代码语言:javascript
复制
# 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应该包含什么才能完成这项任务。有没有人知道这个任务的完整示例?

EN

回答 1

Stack Overflow用户

发布于 2019-10-30 00:47:17

示例中的my_metadata只是对声明性API (https://docs.sqlalchemy.org/en/13/orm/extensions/declarative/api.html)中的Base的引用

示例导入:

代码语言:javascript
复制
from yourapplication.models import Base

my_metadata = Base.metadata

您的数据库中的所有模型都可以通过其元数据获得,只要您将所有模型导入到您的Base所在的位置。在那之后遵循食谱指南,它应该可以工作™

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58490285

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档