2016-11-29 79 views
0

我想通过sqlalchemy在postgresql中发送NOTIFY。这里是代码的一部分:如何在flask-sqlalchemy中的Raw SQL中避免ROLLBACK语句

from flask_sqlalchemy import SQLAlchemy 
db = SQLAlchemy() 
db.engine.execute("NOTIFY DHCP") 

产生下面的SQL代码:

2016-11-29 14:58:41 +05 [20571-16] [email protected] LOG: statement: BEGIN 
2016-11-29 14:58:41 +05 [20571-17] [email protected] LOG: statement: NOTIFY DHCP 
2016-11-29 14:58:41 +05 [20571-18] [email protected] LOG: statement: ROLLBACK 

为什么我必须ROLLBACK语句中的代码和如何更改承诺吗?

回答

0

这里是我能找到的最好的解决办法:

from flask_sqlalchemy import SQLAlchemy 
db = SQLAlchemy() 
connection = db.engine.connect() 
transaction = connection.begin() 
try: 
    connection.execute("NOTIFY DHCP") 
    transaction.commit() 
except: 
    transaction.rollback() 
0

你想做的事:

db.session.execute("...") 
db.session.commit()