【问题标题】:How to run laravel migrations without artisan (using code)如何在没有工匠的情况下运行 laravel 迁移(使用代码)
【发布时间】:2017-11-20 09:07:39
【问题描述】:

我最近在共享主机上托管了一个 laravel 项目(为客户),在尝试通过 ssh 访问服务器失败后,我联系了主机,告诉我 ssh 服务不适用于我的客户托管计划,这意味着我无法访问终端,也无法使用工匠。我知道如何编写一个将创建 sql 表的 php 脚本,但在此之前,我想知道 laravel 是否有一个快捷方式,因为迁移(表)已经定义。我想要的是创建一条路线project.com/run_migrations 来完成这项工作!提前致谢

【问题讨论】:

    标签: php sql laravel-5 laravel-artisan laravel-migrations


    【解决方案1】:

    您可以像这样在 PHP 中轻松创建一个小型 Artisan 脚本:

    Artisan::call('migrate');
    

    这等于php artisan migrate。在您想运行迁移的任何地方使用它。

    如果您处于生产模式(如果 APP_ENV=production 在您的 .env 文件中),那么您必须强制迁移,以防您希望允许进行更改。你可以这样做:

    Artisan::call('migrate', ["--force" => true ]);
    

    这等于在php artisan migrate --force 中添加--force 标志。

    不过,要回答您的具体问题,请创建如下路线:

    Route::get('/run-migrations', function () {
        return Artisan::call('migrate', ["--force" => true ]);
    });
    

    如果您对创建 Web 安装程序感兴趣,您可能会对这个包感兴趣:

    https://github.com/Froiden/laravel-installer

    查看代码以了解他如何处理迁移和种子等。

    【讨论】:

      猜你喜欢
      • 2019-03-04
      • 2015-04-29
      • 2021-06-15
      • 2016-07-08
      • 1970-01-01
      • 2018-09-16
      • 2016-05-31
      • 2019-04-22
      • 2018-12-02
      相关资源
      最近更新 更多