【 PHP 】 Laravel編④ 「マイグレーション 」FirE♯517
Laravel編引き続きやっていきますー!
【 マイグレーション 】
具体的には、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のマイグレーションについて学びました。
この記事が気に入ったらサポートをしてみませんか?