0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Laravelのマイグレーション【個人的なお勉強アウトプット】

Last updated at Posted at 2022-04-04

参考図書

マイグレーションとは

データベースの内容を自動生成するために用意されているのがマイグレーション。
データベースを扱うときにもっとも注意しなければならないのがデータベースの構造。データベースや環境を移行する場合、すべてのデータベースをまったく同じ構造で作らなければ正しく動作しなくなる。現在使っているデータベース構造とまったく同じものを再現する仕組みがあればデータベースの管理は楽になる。そのための機能がマイグレーション。
マイグレーションは、データベースのバージョン管理機能。テーブルを作成したり削除したりする機能をもっている。PHPのスクリプトをつかってテーブルの作成処理などを用意しておける。
マイグレーション機能をつかえば環境が変わった場合もコマンド一発でデータベースのテーブル類を生成することができる。
途中でテーブルの構造を変更した場合も、古いテーブルをすべて削除して最新のテーブルに更新する作業が簡単にできる。

マイグレーションの手順

  • 1.専用のスクリプトファイルの作成
  • 2.スクリプトの記述
  • 3.マイグレーションの実行

1.専用のスクリプトファイルの作成

php artisan maike:migration ファイル名
マイグレーションファイルがdatabase/migrationsフォルダの中に作成される。
migrationsフォルダがマイグレーションファイルを保管しておくフォルダになる。
マイグレーションファイルには冒頭にファイルを生成した日付と時間を表す数字が付けられる。

2.スクリプトの記述

マイグレーションファイルにはMigrationを継承したクラスが作成されている。
このクラスは以下2つのメソッドが用意される

upメソッド

テーブルを生成するための処理を記述する。

downメソッド

テーブルを削除するための処理を記述する。

/database/migrations/2022_04_01_044437_create_people_table.php
<?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/フォルダのなかのファイルがそれぞれ実行されてテーブルが用意される。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?