0
0

Laravel:マイグレーションとシーディング

Posted at

マイグレーションとは

マイグレーションはデータベースのバージョン管理のようなもの。
マイグレーションを使用してデータベースの変更を行うことにより、データベースの構造変更やデータの追加、変更、削除などの機能を持っており、PHPのスクリプトを使ってテーブルの作成処理などを用意している。

マイグレーションの手順

  1. 専用のスクリプトファイルの作成
     コマンドを使いマイグレーションを記録するためのスクリプトファイルを作成する。
  2. スクリプトの記述
     スクリプトファイルに、データベース管理の処理を記述する。
  3. マイグレーションの実行
     マイグレーションを行う場合は、コマンドで実行する。コマンドにより、用意されたマイグレーション用のスクリプトファイルを実行してテーブルの生成や削除などが行える。

マイグレーションファイルの生成

マイグレーションファイル作成は以下のコマンドを実行する。

php artisan make:migration ファイル名
指定んほテーブルを作成するためのマイグレーションファイルが作られる。
マイグレーションファイルはdatabaseフォルダに生成される。

  • upメソッド
      テーブルを生成するための記述をする。テーブル作成に関する必要最小限のコードが自動で用意されている。

  • downメソッド
      テーブルを削除売るための処理を記述。

この二つのメソッドが、テーブル操作の基本となる。これらはマイグレーションコマンドによっって自動的に呼び出される。
   

シーディングについて

テーブルを用意しただけでは、レコードは全く用意されていない。
初期状態ではいくつかのダミーレコードを用意しておくと便利になる。
こうした機能をシーディングという。これは、最初から用意しておくレコードシードを作成する機能である。

手順

  1. シーディングのためのスクリプトファイル(シーダー)を作成。
  2. スクリプトファイルを編集しシードを追加。
  3. コマンドでシーディング実行する。

シーディング処理について

シーディング処理は、「Seeder」を継承したクラスとして定義する。「run」メソッドが用意され、そのメソッド内にレコードを作成するための処理を用意する。

シードを作成する

「run」メソッドの中にシードを作成する処理を用意。DB::tanle->insertを使って、レコードをいくつか作成している。

シーダーファイルの登録

手順によりシーダーファイルは用意できるが、このままでは使えない。作成したファイルが実行されるように、DatabasesSeederに登録しておく必要がある。
デフォルトでDatabaseSeeder.phpというファイルが用意されている。シーディングのコマンドで実行されるスクリプトとなる。このファイルの中に各テーブルのシーダーを呼び出す処理を書く。
$this->call(シーダークラス::class)
実行するシーダークラスのclassプロパティを引数にして「call」というメソッドを呼びだす。これはSeederクラスにあるメソッドで、これにより指定したクラスにrunメソッドが呼び出され、シーディング処理が実行されるようになている。

シーディングを実行

php artisan db:seedコマンドを実行。これでrunが呼び出されて実行するされている。

シーディングが完了したら、テーブルとレコードが用意できているかを確認。
php artisan serveコマンドでサーバーを起動しアクセスする。

以上がマイグレーションとシーディングの流れとなる。
参考文献)PHPフレームワーク Laravel入門 第2版 掌田 津耶乃

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