2016-08-30 1 views
0

У меня есть миграционный маршрут в моем приложении, токовый выход:Laravel 5: Миграция-Route - Artisan :: вызов ('мигрирует', массив ('- сила' => верно)) останавливает

init migrate:install...done migrate:install 
init with tables migrations... 

Теперь он останавливается. Но выход должен продолжаться. Heres маршрут:

Route::get('/migrate', function() { 
    try { 
     try { 
      echo '<br>init migrate:install...'; 
      Artisan::call('migrate:install'); 
      echo 'done migrate:install'; 
     } catch (Exception $e) { 
      echo 'allready installed'; 
     } 

     echo '<br>init with tables migrations...'; 
     Artisan::call('migrate', array('--force' => true)); // here it stops via browser 
     echo 'done with migrations'; 

     echo '<br>clear view cache...'; 
     $cachedViewsDirectory = app('path.storage').'/framework/views/'; 

     if ($handle = opendir($cachedViewsDirectory)) { 
      while (false !== ($entry = readdir($handle))) { 
       if(strstr($entry, '.')) continue; 

       @unlink($cachedViewsDirectory . $entry); 
      } 

      closedir($handle); 
     } 
     echo 'all view cache cleared'; 

     return redirect()->route('backend::dashboard'); 
    } catch (Exception $e) { 
     Response::make($e->getMessage(), 500); 
    } 
}); 

При обращении к Shell и запустить миграцию будет работать:

-bash-4.2$ /opt/plesk/php/5.6/bin/php artisan migrate 
************************************** 
*  Application In Production!  * 
************************************** 

Do you really wish to run this command? (yes/no) [no]: 
> yes 

Migrated: 2016_08_23_194102_import_old_data 
Migrated: 2016_08_25_080129_import_old_adresses 
Migrated: 2016_08_25_080801_import_oldname_to_accountholder 

Почему это не работает от маршрута?

UPDATE

Апач журнал показывает "GET/мигрирует HTTP/1.0" с состоянием 200 возврата, поэтому его HTTP OK.

Также в браузере DEV нет ошибок.

UPDATE 2

Также laravel.log пуст. Нет новой записи во время вызова маршрута миграции.

ответ

0

OK я получил его запустить.

Оригинал миграции (которым может бы было полезно, если я идиот разместил его)

/** 
* Run the migrations. 
* 
* @return void 
*/ 
public function up() 
{ 
    // Load data to be imported. 
    $oldOrders = json_decode(File::get('storage/olddata.json'), TRUE); 

    // Update. 
    foreach ($oldOrders as $rawOrder) { 
     /* @var \App\Order $order */ 
     $order = \App\Order::find(intval($rawOrder['id'])); 

     // Check whether order is payed. 
     if ($order->isPayed() === FALSE && floatval($rawOrder["payedAmount"]) != 0) { 
      /* @var \App\Payment $payment */ 
      $payment = new \App\Payment(); 

      $payment->order_id = $order->id; 
      $payment->amount = $rawOrder["payedAmount"]; 
      $payment->method = $rawOrder["paymentMethod"]; 

      $payment->save(); 
     } 
    } 
} 

И миграция в настоящее время

/** 
* Run the migrations. 
* 
* @return void 
*/ 
public function up() 
{ 
    // Load data to be imported. 
    $oldOrders = json_decode(File::get(base_path('storage/olddata.json')), TRUE); 

    // Update. 
    foreach ($oldOrders as $rawOrder) { 
     /* @var \App\Order $order */ 
     $order = \App\Order::find(intval($rawOrder['id'])); 

     // Check whether order is payed. 
     if ($order->isPayed() === FALSE && floatval($rawOrder["payedAmount"]) != 0) { 
      /* @var \App\Payment $payment */ 
      $payment = new \App\Payment(); 

      $payment->order_id = $order->id; 
      $payment->amount = $rawOrder["payedAmount"]; 
      $payment->method = $rawOrder["paymentMethod"]; 

      $payment->save(); 
     } 
    } 
} 

В локальной среде я мигрировали из оболочки. В начальной точке есть /. Но с маршрутом стартовая точка кажется чем-то еще, и выбрасывает Исключение. Но (почему) он никогда не регистрировался. Я добавил try{}catch(\Exception $e){} вокруг миграции и увидел ошибку.

0

вывесить ошибку, открытые инструменты Dev> вкладка сети, или Apache журналы ошибок

+0

Это комментарий, нет ответа ... Посмотрите мое обновление через секунду. – lippoliv

+0

не может комментировать, пока репутация не повысится ... однако, хотя это будет считаться тривиальным и добавленным к комментариям автоматически @lippoliv – Sherif

+0

ah ok. Не знал этого. Надеюсь, мое обновление поможет. TY – lippoliv

Смежные вопросы