SQLAlchemy update Tablica PostgreSQL przy użyciu scalania nie działa

Używam SQLAlchemy do uzyskania dostępu do bazy danych PostgreSQL i zdefiniowałem obiekt w ten sposób:

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))

wybieram i aktualizuję tabelę session_log w następujący sposób:

session = Session()
sessionLog = session.query(SessionLog).filter_by(id=sessionLogId).first()
sessionLog.appSrcPorts.append(1)
session.merge(sessionLog)
session.commit()

Ale to dziwne, że kolumna „app_src_ports” nie aktualizuje się po wywołaniu merge () i commit (). I znajduję brzydki sposób, aby to działało, przed linią append () dodaj to:

sessionLog.appSrcPorts = list(sessionLog.appSrcPorts)

Ktoś może mi powiedzieć dlaczego?

questionAnswers(2)

yourAnswerToTheQuestion