Запуск 'php artisan migrate: fre sh' в Laravel коде - PullRequest
1 голос
/ 11 февраля 2020

Можно ли запустить php artisan migrate:fresh в действительном коде Laravel без оболочки? Например, перед загрузкой фабрик таблиц в этой функции.

Route::get('/seed', function () {
    // php artisan migrate:fresh
    factory(App\User::class)->create();
    factory(App\Models\Campaign::class, 20)->create();
    factory(App\Models\Model::class, 200)->create();
    factory(App\Models\Trim::class, 400)->create();
    factory(App\Models\Color::class, 800)->create();
    factory(App\Models\Specification::class, 800)->create();
    factory(App\Models\Option::class, 800)->create();
    factory(App\Models\LeaseLength::class, 800)->create();
    factory(App\Models\Mileage::class, 800)->create();
    factory(App\Models\ExtraOption::class, 800)->create();

    return redirect()->back();
});

Цель этого состоит в том, чтобы очистить таблицы перед их повторным заполнением.

1 Ответ

1 голос
/ 11 февраля 2020

Вы можете запустить команду artisan с вашего контроллера следующим образом

use Artisan;

public function artisan()
   {
       Artisan::call('migrate:fresh');
       Artisan::call('make:seeder UsersTableSeeder');
       Artisan::call('config:clear');
   }
...