在PostgreSQL中,事务访问模式可以更改为READ ONLY
(docs)。在SQLAlchemy中,可以为引擎更改隔离级别,但不为只读访问模式(docs)提供参数。
如何在连接上建立READ ONLY
访问模式的引擎?
答案 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
行中设置模式而不是单独的声明。