【问题标题】:Add default value to a migration of another column将默认值添加到另一列的迁移
【发布时间】:2013-01-07 21:53:58
【问题描述】:

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

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

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

【问题讨论】:

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


    【解决方案1】:

    我认为您必须手动进行初始化,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 方法中。

    【讨论】:

      猜你喜欢
      • 2011-10-29
      • 2019-03-27
      • 2016-09-08
      • 2019-12-31
      • 2015-08-12
      • 1970-01-01
      • 2017-10-07
      • 2019-01-28
      • 1970-01-01
      相关资源
      最近更新 更多