7

I've upgraded to Laravel 8, but my custom seeder in a subdirectory is not working. The file is at database/seeders/tests/TestSeeder.php.

When I run the command php artisan db:seed --class="TestSeeder" it return an error message:

Target class [Database\Seeders\TestSeeder] does not exist.

Seeder

<?php

namespace Database\Seeders\Tests;

class TestSeeder extends BaseSeeder
{
    /**
     * Run the database seeds.
     *
     * @return void
     */
    public function run()
    {
       // codes
    }
}

composer.json

"autoload": {
    "psr-4": {
        "App\\": "app/",
        "Database\\Factories\\": "database/factories/",
        "Database\\Seeders\\": "database/seeders/",
        "Database\\Seeders\\Tests\\": "database/seeders/tests/"
    }
},
Karl Hill
  • 12,937
  • 5
  • 58
  • 95
Kenneth
  • 2,813
  • 3
  • 22
  • 46

3 Answers3

19

Laravel assumes you are running a seeder from the Database\Seeders\DatabaseSeeder class. If you provide an unqualified class name such as TestSeeder, it will assume you mean the Database\Seeders\TestSeeder class.

So, you should specify the fully qualified class name.

php artisan db:seed --class="Database\\Seeders\\Tests\\TestSeeder"
miken32
  • 42,008
  • 16
  • 111
  • 154
  • Thank you @miken32. What's wrong in my app. when I run `php artisan make:seeder TestSeeder` it created inside `database/seeds` folder? – Kenneth Dec 09 '20 at 04:05
  • 1
    Ensure you've properly updated the versions of all packages in `composer.json` including `"laravel/framework": "^8.12"` – miken32 Dec 09 '20 at 04:07
  • thanks bru, I just need to remove `/database/seeds` folder. and all works good, :) – Kenneth Dec 09 '20 at 04:14
0

No need to worry about the sub folder, no need to mention it in the command,

  1. Just run the composer dump-autoload
  2. Then run the php artisan db:seed --class="TestSeeder" command

This will work fine.

gihandilanka
  • 585
  • 6
  • 14
0

In addition for @miken32 answer:

for me also worked

php artisan db:seed --class="Database\Seeders\Tests\TestSeeder"
Van4kk
  • 39
  • 2
  • 12