gpt4 book ai didi

python - 是否可以在 alembic 迁移中检索元数据对象?

转载 作者:行者123 更新时间:2023-12-04 13:04:49 27 4
gpt4 key购买 nike

我需要迁移架构和数据。我想按照下面的描述来组织它。但是 sqlalchemy.Table 需要 Metadata 对象。是否可以从 alembic 中检索它?

metadata = op.get_metadata() # how i can do this?

table = sa.Table('my_table', metadata, sa.Column('id',…), ...)

def upgrade():
op.create_table(table)
if context.get_x_argument(as_dictionary=True).get('data', None):
data_upgrades()

def downgrade():
if context.get_x_argument(as_dictionary=True).get('data', None):
data_downgrades()
op.drop_table(table)

def data_upgrades():
op.bulk_insert(table, [ ... ])

def data_downgrades():
table.delete()

最佳答案

我能够使用以下内容构造一个新的元数据对象:

 import alembic
from sqlalchemy.schema import MetaData

metadata = MetaData(bind=alembic.op.get_bind())

这应该有效。我不是 100% 确定是否真的需要绑定(bind)(取决于您的用例)。

对于旧版本 alembic您可能需要使用以下行:
 metadata = MetaData(bind=alembic.context.get_context().bind)

关于python - 是否可以在 alembic 迁移中检索元数据对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36667378/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com