使用默认值添加datetime列

Cat*_*hal 5 python alembic

我正在尝试编写一个alembic迁移来向表中添加datetime列.我希望所有现有行的默认时间为现在,将来的行默认为创建它们的时间.我已经尝试过server_default='now()',它将所有现有的行设置为现在,但新行似乎得到同样的时间.如何设置默认值以使新行获得当前时间?

dav*_*ism 10

问题是,默认设置为结果now(),而不是执行的,所以默认将它设置的确切时间,而不是在插入当前时间.用sa.func.current_timestamp()它设置为功能,而不是该函数的结果.

def upgrade():
    op.add_column('my_table', sa.Column('my_column', sa.DateTime,
            server_default=sa.func.current_timestamp()))
Run Code Online (Sandbox Code Playgroud)