updated_at 列は更新時にすべての属性を参照するため、いつ更新するかを決定する new_updated_at を追加したいと思います。
移行による挿入時のデフォルト値は、現在の updated_at にしたいです。
移行のデフォルト値を同じ行の別の列の値に設定するにはどうすればよいですか?
updated_at 列は更新時にすべての属性を参照するため、いつ更新するかを決定する new_updated_at を追加したいと思います。
移行による挿入時のデフォルト値は、現在の updated_at にしたいです。
移行のデフォルト値を同じ行の別の列の値に設定するにはどうすればよいですか?
手動で初期化を行う必要があると思います。up
移行の SQL の簡単なビットがそれを処理します。
def up
# Add the new column...
connection.execute('update models set new_updated_at = updated_at')
end
models
もちろん、実際のテーブル名に置き換える必要があります。
up
生成された移行を変更し、個別のdown
メソッドに分割する必要があるかもしれませんが、それは問題にはなりません。それをしたくない場合は、別の移行を記述して初期化new_updated_at
し、上記のconnection.execute
呼び出しをその移行のup
メソッドに入れます。