如何在没有控制台访问权限的主机上处理 yii2 迁移


How to handle yii2 migrations on hosts without console access?

我已经在我的共享主机上成功创建并上传了高级模板。

下一步,我必须运行yii migrate

但我不能,因为我没有控制台访问权限。

你能对我提出什么建议?

请注意,

  • 我无法更改主机,因为这不是我的决定
  • 我无法使用 SSH 访问服务器
  • 我已经尝试过类似PHPShell的东西,但是在尝试运行yii migrate --interactive=0时我遇到了permissione denied

我也尝试了这个:添加一个动作迁移到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

异常"

yii''base''无效路由异常",消息"无法 解决请求:站点/迁移"在 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

否则一切都应该没问题。