7

I've been using Laravel's migrations with the path parameter like so:

Artisan::call('migrate', array('--path' => 'path/to/my/Migrations'));

Is there anyway I can run the seed command in the same way? I have a number of seed files I want to use but I don't want to run them all at the same time.

Any advice appreciated.

Thanks

Antonio Carlos Ribeiro
  • 83,499
  • 22
  • 207
  • 202
Dan
  • 5,805
  • 8
  • 36
  • 53

4 Answers4

19

Instead of --path you can set --class with namespace to Seeder class.

Artisan::call('db:seed', [
    '--class' => 'Namespace\Seeds\DatabaseSeeder'
]);

This works on Laravel 5.1

danronmoon
  • 3,682
  • 5
  • 33
  • 56
gellezzz
  • 1,087
  • 2
  • 12
  • 21
2

To refresh the migrations and seed the database, this worked for me:

// Roll back all migrations and migrate them again
Artisan::call('migrate:refresh');
// Fill tables with seeds
Artisan::call('db:seed');

I had lots of seeds and the server was slow. In this case it helps to extend the maximum execution time.

// Extend maximum execution time to 3 minutes
set_time_limit(180);
Artisan::call('migrate:refresh');
Artisan::call('db:seed');
// Back to the default
set_time_limit(30);
matthiasgiger
  • 761
  • 7
  • 13
1

Seeding only

Artisan::call('db:seed');

Re-run all migration under specified path & run seeds as well

Artisan::call('migrate:refresh', array('--path' => 'path/to/my/Migrations', '--seed'));
Andreyco
  • 21,872
  • 4
  • 59
  • 64
  • 1
    Hi, when using the second command, I get the following error: The "--path" option does not exist. – Dan Jul 17 '13 at 14:04
0

Use syntax below and take advantage of type checking

Artisan::call('db:seed', [
    '--class' => UserSeeder::class
]);
Dionysios Arvanitis
  • 1,065
  • 9
  • 10