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

Nic*_*nto 1 postgresql ruby-on-rails default-value rails-migrations ruby-on-rails-3

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

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

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

mu *_*ort 6

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

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

当然,您必须更换models真实的表名.

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