Intereting Posts

Как обрабатывать миграции yii2 на узлах без доступа к консоли?

Я успешно создал и загрузил расширенный шаблон на моем общем хосте.

В качестве следующего шага я должен выполнить yii migrate .

Но я не могу, потому что у меня нет доступа к консоли.

Что вы могли мне предложить?

Обратите внимание, что

  • Я не могу изменить хозяина, потому что это не мое решение
  • Я не могу получить доступ к серверу с помощью SSH
  • Я уже пробовал что-то вроде PHPShell, но я получил permissione denied при попытке запустить yii migrate --interactive=0

Я также попробовал это: добавил actionMigrateUp для frontend/controllers/siteController.php

 public function actionMigrateUp() { // https://github.com/yiisoft/yii2/issues/1764#issuecomment-42436905 $oldApp = \Yii::$app; new \yii\console\Application([ 'id' => 'Command runner', 'basePath' => '@app', 'components' => [ 'db' => $oldApp->db, ], ]); \Yii::$app->runAction('migrate/up', ['migrationPath' => '@console/migrations/', 'interactive' => false]); \Yii::$app = $oldApp; } 

Но когда я посещаю /frontend/web/index.php?r=site/migrateUp я получил 404

exception 'yii \ base \ InvalidRouteException' с сообщением «Невозможно разрешить запрос: site / migrateUp» в C: \ xampp \ htdocs \ www \ vendor \ yiisoft \ yii2 \ base \ Controller.php: 122

    Действие, которое вы создали, не доступно

     /frontend/web/index.php?r=site/migrateUp 

    но с

     /frontend/web/index.php?r=site/migrate-up 

    В противном случае все должно быть хорошо.

    Я нашел этот ответ: как запустить Yiic из приложения Yii без обхода на консоль

    Вам нужно запустить: yiic migrate --interactive=0 или php yii migrate --interactive=0