如何在没有控制台访问的情况下处理主机上的yii2迁移?

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

下一步,我必须运行yii migrate

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

你能向我建议什么?

请注意

  • 我不能改变主人,因为这不是我的决定
  • 我无法使用SSH访问服务器
  • 我已经尝试过一些像PHPShell,但我尝试运行yii migrate --interactive=0时被permissione denied
  • 我也试过这个:添加一个actionMigrateUp到frontend/controllers/siteController.php

    public function actionMigrateUp()
    {
        // https://github.com/yiisoft/yii2/issues/1764#issuecomment-42436905
        $oldApp = Yii::$app;
        new yiiconsoleApplication([
            '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

    在C: xampp htdocs www vendor yiisoft yii2 base Controller.php中显示消息'Unable to resolve the request:site / migrateUp'的异常'yii base InvalidRouteException':122


    您创建的操作无法使用

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

    但是

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

    否则一切都应该没问题。


    我找到了这个答案:如何从Yii应用程序运行Yiic,而不需要对控制台进行脱壳

    您需要运行: yiic migrate --interactive=0php yii migrate --interactive=0

    链接地址: http://www.djcxy.com/p/24293.html

    上一篇: How to handle yii2 migrations on hosts without console access?

    下一篇: Only run task if another isn't UP