How to handle yii2 migrations on hosts without con

2019-01-23 18:52发布

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条回答
混吃等死
2楼-- · 2019-01-23 19:27

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.

查看更多
登录 后发表回答