ラボ > 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');

関連項目