🕌
Laravelでカスタムマイグレーション: `created_at`のみを使用(なぜなら更新は発生しない)
Laravelのデータベースマイグレーション機能は、データベース構造をコードで定義し、バージョン管理を行うための強力なツールである。この記事では、created_at
カラムを追加しつつ updated_at
カラムを省略するカスタムマイグレーションの作成方法について説明する。
マイグレーションの基本
Laravelにおけるマイグレーションは、migrations
フォルダ内にPHPファイルとして定義される。これらのファイルは、テーブルの作成や変更など、データベースに対するあらゆる変更を含むことが可能だ。
created_at
のみを含むテーブルの作成
一般に、Laravelは created_at
と updated_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