How to handle yii2 migrations on hosts without console access?

旧街凉风 提交于 2019-12-18 02:48:16

问题


I've succesfully created and uploaded advanced template on my shared host.

As next step, I must run the yii migrate.

But I cannot because I've not the console access.

What could you suggest to me?

Please note that

  • I cannot change the host, because it's not a decision of mine
  • I cannot access the server using SSH
  • I've already tried something like PHPShell, but I got permissione denied when trying to runyii migrate --interactive=0

I tried also this: added an actionMigrateUp to 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;
}

But when I visit /frontend/web/index.php?r=site/migrateUp I got a 404

exception 'yii\base\InvalidRouteException' with message 'Unable to resolve the request: site/migrateUp' in C:\xampp\htdocs\www\vendor\yiisoft\yii2\base\Controller.php:122


回答1:


The action that you have created is not accesible with

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

but with

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

Otherwise everything should be fine.



来源:https://stackoverflow.com/questions/27983169/how-to-handle-yii2-migrations-on-hosts-without-console-access

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!