SqlAlchemy 和 PostgreSql 日期时间更新
我有一个PostgreSql的表格,我想更新一个带时区的时间戳属性(我也试过不带时间戳的,但也不行)。我正在使用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 个回答
4
我可以假设你已经有了这个表的模型,你应该在里面添加一个新的更新方法,像这样:
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