我有一个用SQLAlchemy定义、创建和管理的数据库
现在,我需要将几个表转换为TimescaleDB hypertables,这可以通过在factum之后执行原始SQL来实现,但我还需要在我创建的hypertables上创建几个连续聚合
但当我尝试执行存储在文件中的原始SQL时,我得到一个错误:
sqlalchemy.exc.InternalError: (psycopg2.errors.ActiveSqlTransaction) CREATE MATERIALIZED VIEW ... WITH DATA cannot run inside a transaction block
在执行新的sql文件之前有一个commit,但它似乎是不够的
session.commit()
sql_file = pkg_resources.resource_filename(
"db_resource", "sql/test_sql.sql"
)
with open(sql_file) as db_file:
engine.execute(db_file.read())
session.commit()
已尝试使用创建为的连接执行:
con = engine.connect()
但这并不能解决问题
甚至可以通过创建多个MATERIALIZED VIEWS
的SQLAlchemy执行原始sql文件吗
另外,实际上这可能是特定于psycopg2模块的
目前没有回答
相关问题 更多 >
编程相关推荐