SqlAlchemy和PostgreSql日期时间更新

时间:2014-05-07 09:20:55

标签: python postgresql datetime sqlalchemy

我有一个PostgreSql表,我想用时区更新timestamp类型的属性(我也试过没有时间戳,但它不起作用)。我为此目的使用了SqlAlchemy会话。

我获取现有记录,并使用当前时间戳更新它:

from model import Table
from dbconf import session

t=session.query(Table).filter(Table.id==1).first()
t.available=datetime.now()
session.add(t)
session.commit()

在此命令之后,数据库中没有任何更改。我做错了什么?

1 个答案:

答案 0 :(得分:3)

我可以假设你有这个表的模型,你应该添加这样的新更新方法:

class table(Base):
    __tablename__ = 'table'

    id = Column(Integer, primary_key=True)
    available = Column(DateTime)
    asd = Column(Unicode(255))


    def update(self, available=None, asd = None):  #etc.
        if available:
            self.available = available
        if asd:
            self.asd = asd

然后像这样进行更新:

import transaction
with transaction.manager:
    t=session.query(Table).filter(Table.id==1).first() #search the object what you want to update
    t.update(available=datetime.now()) #you can update only one or several cell like this