ラボ > Laravel、Lumen:DB関連
laravel マイグレーションファイルの記載(インデックスやカラムの設定など)
作成日:2023-01-06, 更新日:2023-01-12
基本
「Laravel 8.x マイグレーション」を見れば分かりそうな気がする
私の環境
WIN+Docker+Ubuntuでlaravelを使うための作業メモ
マイグレーションファイルの作成
マイグレーションファイルとモデルのファイルを作成
▼「テーブル: RProductor」
$ ./vendor/bin/sail php artisan make:model RProductor -m
※「-m」無しでモデルファイルのみ作成
※単数形の「アッパーキャメルケース(パスカルケース)」にする → テーブル名は複数形の「スネークケース」に置き換わる(※「RProductor」→「r_productors」)
マイグレーションファイルのみ作成したいとき
テーブルを新規作成
$ ./vendor/bin/sail php artisan make:migration ファイル名 --create=テーブル名
テーブルを編集
$ ./vendor/bin/sail php artisan make:migration ファイル名 --table=テーブル名
マイグレーションの実行
マイグレーションの実行
$ ./vendor/bin/sail php artisan migrate
ロールバック
$ ./vendor/bin/sail php artisan migrate:rollback
ひとつだけロールバック
$ ./vendor/bin/sail php artisan migrate:rollback --step=1
カラムの設定
※Laravel 8.x マイグレーション / 利用可能なカラムタイプ
テーブルのコメント: $table->comment()
▼database/migrations/20xx_xx_xx_xxxxxx_xxxxxxxxxxxxxxxxxx_table.php
~ 省略 ~ public function up() { Schema::create('xxxx', function (Blueprint $table) { $table->comment('〇〇〇'); ~ 省略 ~ }); } ~ 省略 ~
インデックス
※Laravel 8.x マイグレーション / インデックス
ユニークキー: $table->unique() / $table->dropUnique()
ユニークキーの作成 / ひとつのカラム: $table->unique()
▼database/migrations/20xx_xx_xx_xxxxxx_xxxxxxxxxxxxxxxxxx_table.php
~ 省略 ~ public function up() { Schema::create('xxxx', function (Blueprint $table) { ~ 省略 ~ $table->unique('〇〇〇', '〇〇〇_unique'); // カラム名、キー名(※キー名は省略OK) }); } ~ 省略 ~
ユニークキーの作成 / 複数のカラム: $table->unique()
▼database/migrations/20xx_xx_xx_xxxxxx_xxxxxxxxxxxxxxxxxx_table.php
~ 省略 ~ public function up() { Schema::create('xxxx', function (Blueprint $table) { ~ 省略 ~ $table->unique( array( // カラム名を配列にセット '〇〇〇', '〇〇〇', ), 'unique_〇〇〇_XXX' ); }); } ~ 省略 ~
ユニークキーの削除: $table->dropUnique()
▼database/migrations/20xx_xx_xx_xxxxxx_xxxxxxxxxxxxxxxxxx_table.php
~ 省略 ~ public function up() { Schema::create('xxxx', function (Blueprint $table) { ~ 省略 ~ $table->unique('〇〇〇', '〇〇〇_unique'); // カラム名、キー名(※キー名は省略OK) }); } ~ 省略 ~ public function down() { Schema::table('xxxx', function (Blueprint $table) { $table->dropUnique('〇〇〇_unique'); // キー名をセット }); ~ 省略 ~ }
$table->dropUnique('users_email_unique');