【问题标题】:Add datetime column with default value添加具有默认值的日期时间列
【发布时间】:2014-05-07 08:22:15
【问题描述】:

我正在尝试编写一个 Alembic 迁移以将日期时间列添加到表中。我希望所有现有行的默认时间为现在,而未来的行默认为它们的创建时间。我试过server_default='now()',它将所有现有的行设置为现在,但新行似乎在同一时间得到。如何设置默认值以便新行获取当前时间?

【问题讨论】:

    标签: python alembic


    【解决方案1】:

    问题在于默认设置为now()结果,而不是它的执行,因此默认设置为设置的确切时间,而不是插入时的当前时间。使用sa.func.current_timestamp() 将其设置为该函数,而不是该函数的结果。

    def upgrade():
        op.add_column('my_table', sa.Column('my_column', sa.DateTime,
                server_default=sa.func.current_timestamp()))
    

    【讨论】:

      猜你喜欢
      • 2015-04-21
      • 1970-01-01
      • 2016-08-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多