見出し画像

【 PHP 】 Laravel編④  「マイグレーション 」FirE♯517


Laravel編引き続きやっていきますー!

【 マイグレーション 】

LaravelではマイグレーションでDBを管理します。
マイグレーションとはデータベースのバージョンコントロールのようなものです。
チーム内でスキーマを簡単に更新し共有できるようにしてくれます。

https://laraweb.net/knowledge/2232/

具体的には、DBのテーブルの履歴を管理する役割があります。
新しいテーブルを作ったり、カラムを追加、削除したときに、その履歴がわかるようにする仕組みです。


<作り方>

ターミナルで、artisanコマンドを実行することで生成します。注意点は、マイグレーション名は、複数形にするということです。

testsというマイグレーションを作ってみます。

ターミナルでartisanコマンドを実行します

php artisan make:migration create_tests_table

vscodeで確認します。

databaseフォルダの中の、migrationsフォルダの中に、
2022_07_30_101822_create_tests_ というファイルあります。

ファイル名は、日付時間_create_マイグレーション名.php になります。


ファイルの中身は

<?php

use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;

return new class extends Migration
{
    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        Schema::create('tests'function (Blueprint $table) {
            $table->id();
            $table->timestamps();
        });
    }

    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    {
        Schema::dropIfExists('tests');
    }
};

ここでカラムの追加が可能です。

この部分にコードを書きます。

       Schema::create('tests'function (Blueprint $table) {
            $table->id();
            $table->timestamps();
        });

例えば、文字列のデータを保管するカラムを作りたい場合
マニュアルに書き方があります。

マニュアルからstringの項目を探すと、このようにあります。

このマニュアルに沿って、コードを追記ます。
100は文字数です。

$table->string("text",100);

このコードを追加します。

    Schema::create('tests'function (Blueprint $table) {
            $table->id();
            $table->timestamps();
            $table->string("text",100);
        });


これで、マイグレーションファイルの更新はできたのですが、これを実際にデータベースにテーブルを作る処理が必要となります。


ターミナルで、artisanコマンドを実行します。マイグレーションファイルの更新をデータベースへ反映するときのコマンドは
migrate です。
migrationではありません。

php artisan migrate

実行します。

create_tests_table と出たので、更新されたことが確認できます。


phpMyAdminで確認します。

tests というテーブルがあり、

中身は、

text というカラムが追加されています。


この動きが、Laravelのマイグレーションの役割です。
phpを書くことで、データベースを管理、更新できました。


【 まとめ 】

Laravelのマイグレーションについて学びました。

この記事が気に入ったらサポートをしてみませんか?