laravel

Laravel8でモデルファイルとマイグレーションファイルを同時作成する方法

2021年8月2日

データアナリスト

 

あなた
Laravel8でモデルファイルとマイグレーションファイルを同時に作成する方法ってありますか?

 

今回はこんな疑問に答えていきます。

 

【前提】

・laravel8

・モデルとマイグレーションについては理解できている

参考:公式ドキュメント

 

Laravel8でモデルファイルとマイグレーションファイルを同時作成する方法

 

結論から話すと、以下のコマンドを叩けばOKです。

 

php artisan make:model モデル名 -m

 

このコマンドを叩いて

Model created successfully.

Created Migration:

というような文言がターミナルで表示されれば成功です。

 

作成されるモデルファイルの場所

 

laravel8から、作成されるModelの場所は「app/models」になっています。

 

作成されるマイグレーションファイルの場所

 

「databes/migrations」の中に入っています。

実際にマイグレーションを実行する時は

 

php artisan migrate

 

上記のコマンドを実行します。

 

マイグレーションファイルの中身の書き方

 

補足的に、マイグレーションファイルの中身の書き方を簡単に紹介します。

 

必要メソッドはup()とdown()

 

必要なメソッドはup()とdown()です。

 

・up() → テーブル情報の入力やインデックス作成

・down() → テーブル削除やインデックス削除

 

「作成時にもdown()は必要なの?」と思うかもですが、必要です。

なぜなら、作成時のマイグレーションを取り消したい時に使うからです。

 

実際のコードの中身は以下のようになります。

 

/**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        //テーブル作成やインデックス作成
    }

    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    {
        //テーブル削除やインデックス削除
    }

 

テーブルの作成記述、削除記述と、インデックスの作成記述と削除記述を紹介します。

 

テーブル作成、削除

 

テーブル作成、削除の記述は以下のような感じです。

 

/**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        Schema::create('テーブル名', function (Blueprint $table) {
            $table->カラム名()->制約()
        });
    }

    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    {
        Schema::dropIfExists('テーブル名');
    }

 

カラムごとの細かい記述方法などについては、公式ドキュメントに記載されていますので、チェックしてみてください。

 

インデックス追加、削除

 

インデックスとの追加と削除は以下のような感じです。

複合インデックスの場合は、配列でカラムを渡してあげれば良いです。

 

/**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        Schema::table('テーブル名', function (Blueprint $table) {
            $table->index(['カラム1', 'カラム2', 'カラム3'],
'インデックス名');
        });
    }

     /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    {
        Schema::table('テーブル名', function (Blueprint $table) {
            $table->dropIndex('インデックス名'); 
        });
    }

 

ちなみに、インデックスやテーブルの削除をしたい場合(変更を巻き戻したい場合)は以下のコマンドを実行すればOKです。

 

php artisan migrate:rollback

 

今回は以上です。

ありがとうございました。

 

プログラミングスクールに関する情報

【無料あり】プログラミングスクールおすすめランキング【WEBエンジニアになりたい方向け】と書かれた画像
【無料あり】プログラミングスクールおすすめランキング【WEBエンジニアになりたい方向け】

  あなたプログラミングスクールに通いたいけどたくさんありすぎてどこがいいのかわかりません。   最近はエンジニアブームということもありプログラミングスクールが増えました。 一方でたくさんありすぎてど ...

続きを見る

返金保証ありのプログラミングスクールランキング【エンジニアが選びました】と表示されたパソコンの画面
【転職保証つき】返金保証ありのプログラミングスクールランキング【エンジニアが選びました】

  あなた返金保証がついているオススメのプログラミングスクールってありますか?   結論から話すと、返金保証つきのプログラミングスクールランキングは次の通りです。   1位:DMMWEBキャンプ  【 ...

続きを見る

wordpress
【無料あり】WEB制作を学べるオンラインスクールランキング【副業で稼ぎたい方向け】

  あなたWeb制作の副業で稼ぎたいけど、どのスクールで学ぶのが良いの? スクール選びで失敗はしたくないです。   ↑このような疑問や不安を解決するべく、現役のWebエンジニアがWEB制作を学べるスク ...

続きを見る

フリーランス
無料あり:フリーランスを目指せるプログラミングスクールランキング【体験をもとに徹底分析しました】

  あなたフリーランスエンジニアを目指すことができるプログラミングスクールってありますか?   最近では、高年収や働きやすさの魅力からフリーランスエンジニアを目指す方も増えてきました。 結論から話すと ...

続きを見る

WEB系自社開発企業にいけるプログラミングスクールランキング【現役エンジニアおすすめ】と書かれた画像
WEB系自社開発企業にいけるプログラミングスクールランキング【現役エンジニアおすすめ】

  あなたWEB系の自社開発企業に就職したいです。 オススメのスクールを教えて下さい。   結論から話すと、WEB系自社開発に行きやすいスクールのランキングは以下の通り。   第1位:テックアカデミー ...

続きを見る

-laravel

© 2022 エンジニアてんし君ブログ