Ruby

RailsのmigrationでCURRENT_TIMESTAMPを設定する

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

イチオシ記事

1

自己紹介 フリーランスエンジニアをしているヨノと申します。 独学でプログラミングを学び、ソシャゲ・SaaS開発などを経て、2018年からフリーランスエンジニアとして活動しています。 主にバックエンド中 ...

2

はじめまして、フリーランスエンジニアのヨノと申します。 自己紹介 独学でプログラミングを学び、ソシャゲ・SaaS開発などを経て、2018年からフリーランスエンジニアとして活動しています。 主にバックエ ...

3

ネット上で色々言われているフリーランスエンジニア....。「本当はどうなの?」と思っている人は多いでしょう。 そこで本記事ではフリーランスエンジニア5年生の私が、ネット上の意見も引用しながら実態を解説 ...

-Ruby
-