Python REINDEX数据库不能在事务块内运行

Python REINDEX数据库不能在事务块内运行,python,postgresql,sqlalchemy,postgresql-9.4,Python,Postgresql,Sqlalchemy,Postgresql 9.4,我使用的是旧版本的sqlalchemy(0.8),我需要使用sqlalchemy api在PostgreSQLQL9.4上执行“REINDEX DATABASE” 最初,我尝试了: conn = pg_db.connect() conn.execute('REINDEX DATABASE sg2') conn.close() 但我得到了错误“REINDEX数据库无法在事务块内运行” 我在internet上阅读并尝试了其他更改: engine.execute(text("REINDEX DA

我使用的是旧版本的sqlalchemy(0.8),我需要使用sqlalchemy api在PostgreSQLQL9.4上执行“
REINDEX DATABASE

最初,我尝试了:

conn = pg_db.connect()  
conn.execute('REINDEX DATABASE sg2')
conn.close()
但我得到了错误“
REINDEX数据库无法在事务块内运行”

我在internet上阅读并尝试了其他更改:

engine.execute(text("REINDEX DATABASE sg2").execution_options(autocommit=True))
(我也尝试过使用autocommit=False)

我总是犯同样的错误

我还尝试了以下几点:

conn.execution_options(isolation_level="AUTOCOMMIT").execute(query)
但我犯了个错误 隔离级别的“自动提交”值无效。postgresql的有效隔离级别为可重复读取、读取已提交、读取未提交和可序列化


我错过了什么?谢谢您的帮助。

autocommit=on您尝试过这个吗?在类似于psql的命令集中AUTOCOMMIT=on@ukaszKamiński的可能重复项,我尝试了该链接中提供的建议,但使用该建议,我得到了错误“隔离级别的无效值‘AUTOCOMMIT’。postgresql的有效隔离级别为可重复读取、读取已提交、读取未提交、可序列化”@Avi我尝试使用cursor.execute('SET AUTOCOMMIT=ON;REINDEX DATABASE sg2')但我得到了相同的错误。@avi自2003年以来PostgreSQL中没有
AUTOCOMMIT
参数。
conn.execution_options(isolation_level="AUTOCOMMIT").execute(query)