Laravel Artisan::call('migrate --seed --force') Не выполняется полностью в контроллереPhp

Кемеровские программисты php общаются здесь
Anonymous
Laravel Artisan::call('migrate --seed --force') Не выполняется полностью в контроллере

Сообщение Anonymous »

Я использую Artisan::call('migrate --seed --force') в своем контроллере Laravel для запуска миграции базы данных и заполнения базы данных. Однако эта команда, похоже, не выполняется полностью, что приводит к зависанию сценария. Остальные команды Artisan до этого работают должным образом.

Код: Выделить всё

   try {
\Log::debug("message Starting to clear config and cache.");
Artisan::call('config:clear');
Artisan::call('cache:clear');

\Log::debug('Saving database environment variables.');
$results = $this->environmentManager->saveDatabaseVariables($request);

if (array_key_exists('success', $results)) {
// \Log::debug('Generating app key and optimizing the application.'. json_encode( $results));
\Log::debug('Generating app key and optimizing the application.');
Artisan::call('key:generate --force');
Artisan::call('optimize:clear');
\Log::debug('config.');
Artisan::call('config:clear');
Artisan::call('cache:clear');
\Log::debug('storage.');
Artisan::call('storage:link');

\Log::debug('Running database migrations and seeding.' );
$output =  Artisan::call('migrate --seed --force');
\Log::debug('migration'.  $output);
}

\Log::debug('Process completed successfully.');
return response()->json("tes ok", 200);
} catch (\Exception $e) {
\Log::debug('An error occurred: ' . $e->getMessage());
return response()->json(['error' => 'An error occurred while processing the request.'], 500);
}
Что я пробовал:
Запуск php php artisanmigrate --seed --force из командной строки работает как положено.
Добавлено ведение журнала до и после команды, чтобы проверить, где она зависает, и подтвердить, что это команда миграции.
Попытался разбить команды Artisan на более мелкие шаги.
Ожидаемое поведение:

Код: Выделить всё

The Artisan::call('migrate --seed --force')Команда 
должна выполняться полностью, запускать все миграции и заполнять базу данных, не вызывая зависания сценария.
Ошибки не регистрируются, и сценарий просто зависает на неопределенный срок.
Другие команды Artisan прекрасно работают в том же методе контроллера.

Подробнее здесь: https://stackoverflow.com/questions/788 ... -controlle

Вернуться в «Php»