Laravelにはテーブル作成が簡単にできるmigration機能というのがあります。
簡単にテーブル作成できますし、
従来のDBサーバーで直接コマンド実行してテーブルを作成するより、
PJ内にコードがあるので履歴等も管理でき非常に良い機能です。
今回はこのmigration機能を使ってテーブルを作成する方法を説明していきます。
migration機能を使ったテーブル作成方法について
Laravelのテーブル作成方法の解説をしていきます
mysqlサーバー直接にコマンドを実行するのではなく、
Laravelのコマンドから作成していく方法です。
テーブル定義
テーブル名 Members (基本的にテーブルは複数形がよい)
以下のスキーマーのテーブル作成をします。
※参考記事 LaravelアプリからのDBの接続について。
Field | Type | Null | Key | Default | Extra |
---|---|---|---|---|---|
id | bigint unsigned | NO | PRI | NULL | auto_increment |
username | varchar(255) | NO | NULL | ||
varchar(255) | NO | NULL | |||
email_verified_at | timestamp | YES | NULL | ||
created_at | timestamp | YES | NULL | ||
updated_at | timestamp | YES | NULL |
テーブル作成
以下のコマンドを実行します。php artisan make:model クラス名(テーブル名単数) --migration
例)php artisan make:model Member --migration
※モデルのクラス名はテーブルの単数系
例)テーブル名 members クラス名Memberで作ると、
Laravel内の補完機能が働いて楽に作れます。
上記コマンドを実行時に自動生成される以下のファイルの編集をします。
(Xの部分はコマンド打った時の日付等が挿入されます。)
編集database/migrations/XXXX_XX_XX_XXXXX_create_members_table.php
例)database/migrations/2021_10_01_055724_create_members_table.php
Before(編集前)

After(編集後)

解説
up()関数の中にスキーマー定義を書きます。
Beforeの画像ですでにup()関数にあるものは、
php artisan make:model Member –migration のコマンドを打ったときに
自動生成されているものなので適宜修正してください。
スキーマー定義の書き方の一例です。
ページ上部のスキーマーを生成するときのコードです。
//プライマリーキー
$table->id();
//文字列のカラム Varchar(255)のカラムが作成される
$table->string(‘username’); usernameはカラム名
//timestampのカラム、カラムタイプ定義の後に->nullable() こんな感じでnull OKかどうか設定できる。デフォルトはNull NG。こんな感じでカラム修飾子も設定可能です。
$table->timestamp(‘email_verified_at’)->nullable()
その他の設定項目についてはこちらご確認ください。
https://readouble.com/laravel/master/ja/migrations#column-modifiers
//created_at(作成日時),updated_at(更新日時)のカラムが自動生成される
$table->timestamps();
テーブル名は複数形 例)members
モデルはテーブルの単数系 例)Memberで作ると、
Laravel内の補完機能が働いて楽に作れます。
命名規則が合わない場合も定義を追加、変更することにより
既存のテーブル名、定義に合ったテーブルの作成ができます。
詳しくは公式ドキュメントのこのページを確認してください。
id,string,timestamp以外の定義方法もこのページに載っています。
https://readouble.com/laravel/8.x/ja/migrations.html#creating-tables
ファイルの編集が終わったら、
テーブル作成をコマンドでします。
このコマンドを実行しましょう。
php artisan migrate
無事テーブル作成できたかどうかDBを覗いてみます。
テーブル作成できていました!!

以上、Laravelでのテーブル作成方法の説明でした。
おわりに
Laravelのmigration機能を使ったテーブルの作成方法を解説しました。
自力でMySQL等DBサーバーに入って作業するよりメンテナンス性が良いのでこちらの方法がおすすめです。
ぜひサンプルコードをもとに試してみてください。
次回はテーブルへのマスタデータ挿入方法について解説します。
では!!
コメント