[Laravel] データベースマイグレーション シーダー編

今回はLaravelの「シーダー」(Seeder)機能を使用して初期データの投入をおこなう方法を紹介します。

本記事は前回の「[Laravel] データベースマイグレーション」の続きとなります。

今回は前回作成した「students」テーブルに初期データの投入をおこないます。

シーダーの作成


シーダーの作成は以下のコマンドでおこないます。

php artisan make:seeder StudentsTableSeeder

上記コマンドを実行すると「database/seeds/StudentTableSeeder.php」が生成されます。

<?php

use Illuminate\Database\Seeder;

class StudentsTableSeeder extends Seeder
{
    /**
     * Run the database seeds.
     *
     * @return void
     */
    public function run()
    {
        //
    }
}

以上のシーダークラスをベースにrunファンクションの中にinsertをおこないたい初期投入データを記述します。

DB::insert('INSERT INTO students(name, email, phone) VALUES("山田一郎", "ichiro@yamada.com", "0123-456-789")');
DB::insert('INSERT INTO students(name, email, phone) VALUES("山田二郎", "jiro@yamada.com", "0123-456-790")');
DB::insert('INSERT INTO students(name, email, phone) VALUES("山田三郎", "saburo@yamada.com", "0123-456-791")');

シーダーの登録

作成したシーダーを実行するには、「database/seeds/DatabaseSeeder.php」に登録をおこなう必要があります。
DatabaseSeederに下記のコードを記述して、先程作成した「StudentsTableSeeder」の追加をおこないます。

<?php

use Illuminate\Database\Seeder;

class DatabaseSeeder extends Seeder
{
    /**
     * Seed the application's database.
     *
     * @return void
     */
    public function run()
    {
        $this->call(StudentsTableSeeder::class);
    }
}

シーダーの実行

シーダーの実行は以下のコマンドでおこなえます。

php artisan db:seed

コマンド実行後、以下が表示されたら、無事シード実行完了です。

Seeding: StudentsTableSeeder
Database seeding completed successfully.

データベースを確認すると、無事登録がおこなえていることが確認できました。

データベースの初期化、およびマイグレーションのロールバックと再実行、初期投入データのシードの投入をやりなおしたい場合は以下のコマンドを実行します。

php artisan migrate:refresh --seed


金曜日担当:nishida



アプリ関連ニュース

お問い合わせはこちら

お問い合わせ・ご相談はお電話、またはお問い合わせフォームよりお受け付けいたしております。

tel. 06-6454-8833(平日 10:00~17:00)

お問い合わせフォーム