🕌

Laravelでカスタムマイグレーション: `created_at`のみを使用(なぜなら更新は発生しない)

2024/04/24に公開

Laravelのデータベースマイグレーション機能は、データベース構造をコードで定義し、バージョン管理を行うための強力なツールである。この記事では、created_at カラムを追加しつつ updated_at カラムを省略するカスタムマイグレーションの作成方法について説明する。

マイグレーションの基本

Laravelにおけるマイグレーションは、migrations フォルダ内にPHPファイルとして定義される。これらのファイルは、テーブルの作成や変更など、データベースに対するあらゆる変更を含むことが可能だ。

created_at のみを含むテーブルの作成

一般に、Laravelは created_atupdated_at の両方を自動的に含む timestamps() メソッドを提供している。しかし、updated_at カラムが不要な場合もある。その場合、以下のようにカラムを個別に追加することが望ましい(更新の発生有無にかかわらずupdated_atは持っておくべきだ!と言われるかも)。

Schema::create('your_table_name', function (Blueprint $table) {
    $table->id();
    // 他のカラム定義
    $table->timestamp('created_at')->useCurrent();
});

useCurrent() メソッドの機能

useCurrent() メソッドは、カラムにデフォルト値として「現在のタイムスタンプ」を設定する。これにより、レコードが挿入された時にそのカラムに自動的に現在の日時が設定されるため、データ作成時の日時を手動で管理する必要がなくなる。特に created_at カラムに useCurrent() を適用することで、レコード作成のタイミングを正確に追跡できる。

まとめ

この方法を利用することで、Laravelプロジェクトにおいてデータベースのカラムをより柔軟に制御できる。created_at のみが必要な場合、このシンプルな変更で対応可能だ。Laravelのマイグレーション機能を最大限に活用し、効率的なデータベース管理を実現しよう。


Let's happy coding

Discussion