結論
こんな具合に書きます。
class CreateUsers < ActiveRecord::Migration[5.1] def change create_table :users do |t| # 省略 t.datetime :created_at, default: -> { 'CURRENT_TIMESTAMP' } t.datetime :updated_at, default: -> { 'CURRENT_TIMESTAMP' } end end end
備考
- Rails というより Active Record の機能のような気もしますが、参考にしたページでは Rails 5 からサポートされたと書いてあるのでこのような標題にしました
- 当然ながら
created_at
やupdated_at
だけでなく、datetime
であるあらゆるカラムで使えます - これまた当然ながら、上記のように指定した場合は
t.timestamps
は必要ありません*1 - そしてまた当然ながら、「現在日時」である必要はありません
- なんでこんな変な運用をと、思うかもしれませんが、こうしなきゃいけないときも(きっと)あります
参考ページ
*1:というか含んだらエラーになります