Laravelにて、既存DBからSeederファイルを逆生成する方法。
LaravelのSeederファイルを既存DBから逆生成する
LaravelのSeederファイルを既存DBから逆生成するのに、以下のパッケージを利用する。
orangehill/iseed
https://github.com/orangehill/iseed
Laravelがインストールされている環境にログインし、Laravelのトップディレクトリ(artisanがあるディレクトリ)から、以下のコマンドを実行する。
$composer require --dev "orangehill/iseed"
$vi config/app.php
→ "providers"に以下を追加 Orangehill\Iseed\IseedServiceProvider::class, $php artisan iseed [テーブル名]
:
Seederファイルの確認
以下のコマンドで内容を確認する。
(※Migrationファイルが存在していることが前提)
$ php artisan migrate:refresh --seed
エラーが出たら以下のように対応。
外部キーエラーの場合
Seederファイルに以下を追記する。
シーディングの際、外部キーチェックを無効にし、終わったら外部キーチェックを有効にする。
:
public function run()
{
\DB::statement('SET FOREIGN_KEY_CHECKS=0;');
:
\DB::statement('SET FOREIGN_KEY_CHECKS=1;');
}
:
存在しないSeederファイルを呼び出していた場合
database/seeds/DatabaseSeeder.phpを修正する。