SQL Alchemy 更新时间在 Alembic 修订版中不起作用

Wil*_*oss 2 mysql sqlalchemy alembic

我在 update_time 的 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()))
Run Code Online (Sandbox Code Playgroud)

我也尝试过:

sa.Column('test_time', sa.DateTime(), server_default=sa.func.now(), server_onupdate=sa.func.now(), onupdate=sa.func.now())
Run Code Online (Sandbox Code Playgroud)

构建数据库时,获取 utcnow() 时间作为 DateTime。

但是,当我通过 mysql 中的命令行更新列时,列保持相同的时间戳。

如何获取要更新的时间戳?

Wil*_*oss 7

让它与:

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'))
Run Code Online (Sandbox Code Playgroud)