我正在使用SQLAlchemy来访问PostgreSQL数据库,并且我定义了以下这个对象:
但是很奇怪的是,在我调用merge()和commit()之后,列'app_src_ports'没有更新。我找到了一个丑陋的方法来使它工作,在append()行之前添加这个:
我正在使用SQLAlchemy访问PostgreSQL数据库,对象定义如下:
class SessionLog(Base):
__tablename__ = 'session_log'
id = Column(Integer, primary_key=True)
recordFile = Column('record_file', String(128))
appSrcPorts = Column('app_src_ports', ARRAY(Integer))
info5 = Column('info5', String(100))
我会选择并更新session_log表格,代码如下:
session = Session()
sessionLog = session.query(SessionLog).filter_by(id=sessionLogId).first()
sessionLog.appSrcPorts.append(1)
session.merge(sessionLog)
session.commit()
但是很奇怪的是,在我调用merge()和commit()之后,列'app_src_ports'没有更新。我找到了一个丑陋的方法来使它工作,在append()行之前添加这个:
sessionLog.appSrcPorts = list(sessionLog.appSrcPorts)
有人能告诉我为什么吗?