将默认值添加到另一列的迁移中

时间:2013-01-07 21:53:59

标签: ruby-on-rails postgresql ruby-on-rails-3 default-value rails-migrations

由于updated_at列在更新时查看了所有属性,我想添加一个new_updated_at,我将在更新时决定。

通过迁移插入时的默认值我希望它是当前的updated_at。

如何将迁移的默认值设置为同一行但另一列的值?

1 个答案:

答案 0 :(得分:6)

我认为您必须手动进行初始化,up迁移中的一小部分SQL会处理它:

def up
    # Add the new column...
    connection.execute('update models set new_updated_at = updated_at')
end

当然,您必须用您的真实表名替换models

您可能需要修改生成的迁移并将其拆分为单独的updown方法,但这不应该是一个问题。如果您不想这样做,请编写单独的迁移来初始化new_updated_at并将上述connection.execute调用放入该迁移的up方法中。