Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to handle yii2 migrations on hosts without console access?

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

like image 739
realtebo Avatar asked Jan 16 '15 11:01

realtebo


1 Answers

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.

like image 180
Mihai P. Avatar answered Nov 01 '22 00:11

Mihai P.