我需要迁移架构&数据。我想按照下面的描述组织它。但是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()
答案 0 :(得分:0)
我能够使用以下内容构建一个新的元数据对象:
import alembic
from sqlalchemy.schema import MetaData
metadata = MetaData(bind=alembic.context.get_context().bind)
这应该有效。我不能100%确定是否真的需要绑定(取决于你的用例)。