sqlalchemy表字段默认时间的一个小坑

2020-11-24  本文已影响0人  200Ok

测试同学突然给报了bug,说所有新插入的数据的time字段-时间都一样。稍微一查发现,差不多是程序启动的时间。

代码如下:

    created_time = Column(TIMESTAMP, default=datetime.now())
    updated_time = Column(TIMESTAMP, default=datetime.now(), onupdate=datetime.now())

网上简单查了一下,应该使用函数的形式,而不是直接调方法,不然sqlalchemy会缓存第一次调用的结果,之后不会再调用,写成这样就可以了:

    created_time = Column(TIMESTAMP, default=datetime.now)
    updated_time = Column(TIMESTAMP, default=datetime.now, onupdate=datetime.now)

特此记录

上一篇 下一篇

猜你喜欢

热点阅读