Search code examples
phplaravellaravel-5database-migration

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.


Solution

  • 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()
        {
            //
        }
    }