如何使用 Alembic 生成超表?我想必须添加一些自定义调用,但是在哪里?我尝试了 event.listen 但 Alembic 没有注册它。
您可以通过添加手动、自定义、迁移操作在 Alembic 中创建超表。
您无法自动生成它,因为 Alembic 中没有对 TimescaleDB 的特定支持,并且它不理解超表。
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;