【Laravel】既存DBからSeederファイルを逆生成する

Laravelで既存DBからSeederファイルを生成する方法

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を修正する。

投稿者: Output48

中学生の時に初めてHTMLに触れてからホームページ制作を独学で始める。 ベンチャー企業の営業、大手企業のPG・SEを経て、独立。 現在はとある企業のCTOと、変な名前の会社の社長をしてる。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください