Ad

How To Seed Specific Table As Part Of Migration - Laravel 5?

I have this commands

php artisan db:seed --class=GraphsTableSeeder

that I need to run in my part of my code (migration).

How do I do that ?

<?php

use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;

use App\Models\Graph;


class RescueGraphsTable extends Migration
{
    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        if (Schema::hasTable('graphs')) {

            $graphRecords = Graph::all();

            if(count($graphRecords) == 42){
                echo "graphs table has good data.";
            }

            //truncate
            DB::table('graphs')->truncate();

            //add data
            //php artisan db:seed --class=GraphsTableSeeder ✨

        } else {

            //add graphs table

            //add data
            //php artisan db:seed --class=GraphsTableSeeder ✨

        }
    }

    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    {
        //
    }
}

I'm kind of stuck, please help.

Ad

Answer

Please check the link Programmatically Executing Commands

<?php

use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;

use App\Models\Graph;


class RescueGraphsTable extends Migration
{
    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        if (Schema::hasTable('graphs')) {

            if(Graph::count() == 42){
                echo "graphs table has good data.";
            }

            DB::table('graphs')->truncate();

        }

        $exitCode = \Artisan::call('db:seed', [
            '--class' => 'GraphsTableSeeder'
        ]);
    }

    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    {
        //
    }
}
Ad
source: stackoverflow.com
Ad