RailsのmigrationファイルでCURRENT_TIMESTAMPを設定する方法があった。
この変更かな? https://github.com/rails/rails/pull/20005
default
に Proc で渡せば式展開されずに済む。
create_table :hoge do |t|
t.integer :code, null: false, primary_key: true
// ...
t.datetime :created_at, null: false, default: ->{ "CURRENT_TIMESTAMP" }
t.datetime :updated_at, null: false, default: ->{ "CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP" }
end
SHOW CREATE TABLE
の結果
CREATE TABLE `hoge` (
`code` int NOT NULL AUTO_INCREMENT,
`created_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
`updated_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`code`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci