0

I have php 8.1.0 and laravel 8 every other thing seems to work and run just fine, except for php artisan db:seed when running it gives me no output, not any errors just not seeding. This problem started when I upgraded my pc and wanted to set up project in new one, nothing changed except my pc and php versions. I tried multiple php versions nothing changed.

Here is what my .env File looks like.

APP_NAME=Laravel
APP_ENV=local
APP_KEY=base64:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX=
APP_DEBUG=true
APP_URL=http://localhost:8000

LOG_CHANNEL=stack
LOG_DEPRECATIONS_CHANNEL=null
LOG_LEVEL=debug

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=db
DB_USERNAME=root
DB_PASSWORD=


BROADCAST_DRIVER=log
CACHE_DRIVER=array
FILESYSTEM_DRIVER=local
QUEUE_CONNECTION=sync
SESSION_DRIVER=file
SESSION_LIFETIME=120

MEMCACHED_HOST=127.0.0.1

REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379

MAIL_MAILER=smtp
MAIL_HOST=smtp.mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=XXXXXXXXXXXXXXXXX
MAIL_PASSWORD=XXXXXXXXXXXXXXXXX
MAIL_ENCRYPTION=tls
MAIL_FROM_ADDRESS=test@gmail.com
MAIL_FROM_NAME="${APP_NAME}"

AWS_ACCESS_KEY_ID=
AWS_SECRET_ACCESS_KEY=
AWS_DEFAULT_REGION=us-east-1
AWS_BUCKET=
AWS_USE_PATH_STYLE_ENDPOINT=false

PUSHER_APP_ID=
PUSHER_APP_KEY=
PUSHER_APP_SECRET=
PUSHER_APP_CLUSTER=mt1

MIX_PUSHER_APP_KEY="${PUSHER_APP_KEY}"
MIX_PUSHER_APP_CLUSTER="${PUSHER_APP_CLUSTER}"
SANCTUM_STATEFUL_DOMAINS=localhost:3000

And here is my how my database seeder class looks like

<?php

namespace Database\Seeders;

use Laravel\Passport\Passport;
use Illuminate\Database\Seeder;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Artisan;

class DatabaseSeeder extends Seeder
{
    /**
     * Seed the application's database.
     *
     * @return void
     */
    public function run()
    {
        DB::statement("SET foreign_key_checks=0");
        $databaseName = DB::getDatabaseName();
        $tables = DB::select("SELECT * FROM information_schema.tables WHERE table_schema = '$databaseName'");
        foreach ($tables as $table) {
            $name = $table->TABLE_NAME;
            //if you don't want to truncate migrations
            if ($name == 'migrations') {
                continue;
            }
            DB::table($name)->truncate();
        }
        DB::statement("SET foreign_key_checks=1");

        Artisan::call("create:countries");
        Artisan::call("create:systems");
        $this->call(SubjectSeeder::class);
        $this->call(ReasonSeeder::class);
        $this->call(UserSeeder::class);
        $this->call(NoteSeeder::class);
        $this->call(CompanySeeder::class);
        $this->call(DepartmentSeeder::class);
        $this->call(TeamSeeder::class);
        $this->call(RoleSeeder::class);
        $this->call(CompanyUserSeeder::class);
        Artisan::call("create:super_admin");
        Artisan::call("passport:install");
    }
}
fdglefevre
  • 672
  • 4
  • 15
Abdullah Qasemi
  • 449
  • 1
  • 12
  • Use `php artisan tinker` and check if `DB::getDatabaseName();` give you the expected result. What happens if you put a simple `echo "it does something";` as the first line of your `run` method ? – fdglefevre Jan 09 '22 at 23:37
  • go to your AppServiceProvider's boot method. Add the following line `DB::listen(function ($query) { dump([$query->sql, $query->bindings]); });`. Rerun your seeder. Now you should see every query that is happening in the console. Does it show what you expect? – IGP Jan 10 '22 at 05:19
  • 1
    I run and it works just fine like every other thing, it givs me the database name and every thing, just the db:seed doesn't do anything, every other thing works fine. – Abdullah Qasemi Jan 10 '22 at 05:19
  • Same thing if you use a seeder class ? Like `php artisan db:seed --class=UserSeeder` Tables are truncated ? – fdglefevre Jan 10 '22 at 19:50

0 Answers0