【发布时间】:2014-03-31 00:48:41
【问题描述】:
目前,我的项目结构是这样的:
project-name/libs/__init__.py
/module-1
/module-2
我已经在 init.py
中声明了我的 sqlalchemy 会话engine = create_engine('postgresql+psycopg2://' + configurations.DB_USERNAME + ':' + configurations.DB_PASSWORD + '@' + configurations.DB_HOST +'/' + configurations.DB_NAME,echo=True)
sm = orm.sessionmaker(bind=engine, autoflush=True, autocommit=False,
expire_on_commit=True)
session = orm.scoped_session(sm)
然后我在需要查询的地方使用这个会话。
目前,我正面临这个问题:
This Session's transaction has been rolled back due to a previous exception during flush. To begin a new transaction with this Session, first issue Session.rollback(). Original exception was: (DataError) invalid input value for enum exchange: "BS1"
我还没有完成这个查询。我已经更改了我的数据库,但错误仍然存在。所以,我认为会话仍然存在。我试过刷新会话/回滚,但没有任何帮助。
我的另一个问题是我从不关闭会话。我该如何实现呢? (这是一个网络应用程序)
【问题讨论】:
标签: python postgresql session sqlalchemy cherrypy