sql炼金术更新时间在alembic版本中不起作用

63lcw9qa  于 2021-06-19  发布在  Mysql
关注(0)|答案(1)|浏览(431)

我在alembic修订版中有一个列,更新时显示该列。
目前我已尝试:

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中通过命令行更新该列时,该列保持相同的时间戳。
如何获取要更新的时间戳?

brc7rcf0

brc7rcf01#

让它与:

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

相关问题