如何在SQLAlchemy中使用READ ONLY事务模式?

时间:2014-09-18 04:07:50

标签: postgresql transactions sqlalchemy readonly

在PostgreSQL中,事务访问模式可以更改为READ ONLYdocs)。在SQLAlchemy中,可以为引擎更改隔离级别,但不为只读访问模式(docs)提供参数。

如何在连接上建立READ ONLY访问模式的引擎?

1 个答案:

答案 0 :(得分:2)

一种解决方案是对每笔交易执行一条陈述:

engine = create_engine('postgresql+psycopg2://postgres:pass@127.0.0.1:5432/')
@event.listens_for(engine, 'begin')
def receive_begin(conn):
    conn.execute('SET TRANSACTION READ ONLY')

但最好在BEGIN TRANSACTION行中设置模式而不是单独的声明。