【发布时间】:2014-10-05 14:12:46
【问题描述】:
对不起,我之前没说清楚,
编辑: 我正在使用带有 sqlalchemy(后端:postgresql)的默认金字塔应用程序,使用
生成pcreate -s alchemy
所以我有所有与 DBSession、pyramid_tm 等相关的设置。我有这个代码
class User(Base):
id = Column(Integer, primary_key=True)
connection = relationship("UserConnection", uselist=False, backref="user")
class UserConnection(Base):
userid = Column(Integer, ForeignKey('user.id'), primary_key=True)
friends = Column(JSON)
def add_connection(user, friend):
with transaction.manager:
if not user.connection:
user_conn = UserConnection(userid=user.id, friends=[])
else:
user_conn = user.connection
user_conn.friends.append(friend)
print(user_connection.friends)
session.add(user_conn)
当我第一次运行 add_connection() 时,user.connection 不存在。新记录被创建,但在下次运行时(以防万一)记录不会更新,在控制台上我只能看到 ROLLBACK/COMMIT 但看不到其他语句。
那里的 print 语句显示更新的结果,但 db 没有更新。
【问题讨论】:
-
了解到我不需要每次都使用transaction.manager,反正都是由pyramid_tm完成的。
标签: python postgresql sqlalchemy pyramid