【发布时间】:2015-09-01 19:55:54
【问题描述】:
我将 sqlalchemy 与 PostgreSQL 和 Pyramid Web 框架一起使用。这是我的models.py:
engine = create_engine(db_url, pool_recycle=3600,
isolation_level="READ UNCOMMITTED")
Session = scoped_session(sessionmaker(bind=engine))
session = Session()
Base = declarative_base()
Base.metadata.bind = engine
class _BaseMixin(object):
def save(self):
session.add(self)
session.commit()
def delete(self):
session.delete(self)
session.commit()
我为我的模型继承了 Base 和 _BaseMixin。例如:
class MyModel(Base, _BaseMixin):
__tablename__ = 'MY_MODELS'
id = Column(Integer, primary_key=True, autoincrement=True)
原因是我想做类似的事情
m = MyModel()
m.save()
我一直面临着奇怪的会话问题。示例错误消息包括
- InvalidRequestError:此会话处于“准备”状态;此事务中不能再发出 SQL。
- InvalidRequestError:事务已经开始。使用 subtransactions=True 来允许子事务。
我要做的就是将内存中的内容提交到数据库中。但间歇性 SQLAlchemy 会抛出如上所述的错误并且无法提交。
我的方法有问题吗?
【问题讨论】:
标签: postgresql sqlalchemy