问题
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
回答1:
Instead of --path you can set --class with namespace to Seeder class.
Artisan::call('db:seed', [
'--class' => 'Namespace\Seeds\DatabaseSeeder'
]);
This work on Laravel 5.1
回答2:
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'));
回答3:
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);
来源:https://stackoverflow.com/questions/17701314/seeding-database-with-path-from-code