SQL Alchemy更新时间不适用于Alembic版本

时间:2018-09-19 13:20:54

标签: mysql sqlalchemy alembic

我在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中的命令行更新该列时,该列会保留相同的时间戳。

如何获取时间戳更新?

1 个答案:

答案 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')),