参考図書
マイグレーションとは
データベースの内容を自動生成するために用意されているのがマイグレーション。
データベースを扱うときにもっとも注意しなければならないのがデータベースの構造。データベースや環境を移行する場合、すべてのデータベースをまったく同じ構造で作らなければ正しく動作しなくなる。現在使っているデータベース構造とまったく同じものを再現する仕組みがあればデータベースの管理は楽になる。そのための機能がマイグレーション。
マイグレーションは、データベースのバージョン管理機能。テーブルを作成したり削除したりする機能をもっている。PHPのスクリプトをつかってテーブルの作成処理などを用意しておける。
マイグレーション機能をつかえば環境が変わった場合もコマンド一発でデータベースのテーブル類を生成することができる。
途中でテーブルの構造を変更した場合も、古いテーブルをすべて削除して最新のテーブルに更新する作業が簡単にできる。
マイグレーションの手順
- 1.専用のスクリプトファイルの作成
- 2.スクリプトの記述
- 3.マイグレーションの実行
1.専用のスクリプトファイルの作成
php artisan maike:migration ファイル名
マイグレーションファイルがdatabase/migrationsフォルダの中に作成される。
migrationsフォルダがマイグレーションファイルを保管しておくフォルダになる。
マイグレーションファイルには冒頭にファイルを生成した日付と時間を表す数字が付けられる。
2.スクリプトの記述
マイグレーションファイルにはMigrationを継承したクラスが作成されている。
このクラスは以下2つのメソッドが用意される
upメソッド
テーブルを生成するための処理を記述する。
downメソッド
テーブルを削除するための処理を記述する。
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
public function up()
{
//第1引数でテーブル名、第2引数でテーブルを作成するための処理をまとめたクロージャ
Schema::create('people', function (Blueprint $table) {
$table->increments('id');
$table->string('name');
$table->string('mail');
$table->integer('age');
$table->timestamps();
});
}
public function down()
{
Schema::dropIfExists('people');
}
};
3.マイグレーションの実行
SQliteの場合、sqliteファイルがある場所にターミナルに移動。
php artisan migrate
/database/migrations/フォルダのなかのファイルがそれぞれ実行されてテーブルが用意される。