我在Alembic版本中有一个列,用于update_time,以显示何时更新该列。
目前我已经尝试过:
sa.Column('update_time', sa.dialects.mysql.DATETIME(fsp=3),
nullable=False, server_default=str(datetime.utcnow()),
onupdate=str(datetime.utcnow()), server_onupdate=str(datetime.utcnow()))
我也尝试过:
sa.Column('test_time', sa.DateTime(), server_default=sa.func.now(),
server_onupdate=sa.func.now(), onupdate=sa.func.now())
建立数据库时,将utcnow()时间设置为DateTime。
但是,当我通过mysql中的命令行更新该列时,该列会保留相同的时间戳。
如何获取时间戳更新?
答案 0 :(得分:0)
可以使用:
from sqlalchemy import text
from sqlalchemy.dialects.mysql import TIMESTAMP
sa.Column('update_time', TIMESTAMP(), nullable=False,
server_default=text('CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP')),