如何在没有工匠的情况下运行laravel迁移(使用代码)

问题描述 投票:4回答:1

我最近在共享主机上托管了一个面向客户的laravel项目,在尝试通过ssh无法访问服务器后,我联系了主机,主机通知我我的客户托管计划无法使用ssh服务,这意味着我无法访问终端,无法使用手工艺者。我知道如何编写一个可创建sql表的php脚本,但就在此之前,我想知道laravel是否存在对此的快捷方式,因为已经定义了迁移(表)。我想要的是创建一条路由project.com/run_migrations来完成任务!在此先感谢

php sql laravel-5 artisan laravel-migrations
1个回答
12
投票
您可以像这样在PHP中轻松创建一个小型Artisan脚本:

Artisan::call('migrate');

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

如果您处于生产模式(如果APP_ENV=production文件中有.env,则必须强制迁移),以防您要进行更改。您可以按如下操作:

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

这等于将--force标志添加为la php artisan migrate --force

不过,要回答您的特定问题,请创建这样的路线:

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

如果您有兴趣创建Web安装程序,则可能对此软件包感兴趣:

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

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

© www.soinside.com 2019 - 2024. All rights reserved.