Alembic - 如何创建超表

问题描述 投票:0回答:2

如何使用 Alembic 生成超表?我想必须添加一些自定义调用,但是在哪里?我尝试了 event.listen 但 Alembic 没有注册它。

python sqlalchemy alembic timescaledb sqlmodel
2个回答
1
投票

您可以通过添加手动、自定义、迁移操作在 Alembic 中创建超表。

您无法自动生成它,因为 Alembic 中没有对 TimescaleDB 的特定支持,并且它不理解超表。


0
投票
def upgrade() -> None:
    op.create_table(
        TABLE_NAME,
        sa.Column('ts', sa.DateTime),
        sa.Column('col1', sa.String(50), nullable=False),
        sa.Column('col2', sa.String(50)),
        sa.Column('col1',sa.String(50)),
        sa.Column('col1',sa.String(50)),
        sa.Column('col1',sa.Integer),
        sa.Column('col1',sa.Integer),
        schema=SCHEMA,
        if_not_exists=True,)

    op.execute(f"SELECT create_hypertable('{SCHEMA}.{TABLE_NAME}', 'ts');")

这对我有用。确保根据需要创建超表扩展,否则会出现错误。:

CREATE EXTENSION IF NOT EXISTS timescaledb CASCADE;
© www.soinside.com 2019 - 2024. All rights reserved.