我最近在共享主机上托管了一个面向客户的laravel项目,在尝试通过ssh无法访问服务器后,我联系了主机,主机通知我我的客户托管计划无法使用ssh服务,这意味着我无法访问终端,无法使用手工艺者。我知道如何编写一个可创建sql表的php脚本,但就在此之前,我想知道laravel是否存在对此的快捷方式,因为已经定义了迁移(表)。我想要的是创建一条路由project.com/run_migrations
来完成任务!在此先感谢
Artisan::call('migrate');
这等于php artisan migrate
。在您要运行迁移的任何地方使用它。如果您处于生产模式(如果
APP_ENV=production
文件中有.env
,则必须强制迁移),以防您要进行更改。您可以按如下操作:
Artisan::call('migrate', ["--force" => true ]);
这等于将--force标志添加为laphp artisan migrate --force
。不过,要回答您的特定问题,请创建这样的路线:
Route::get('/run-migrations', function () { return Artisan::call('migrate', ["--force" => true ]); });
如果您有兴趣创建Web安装程序,则可能对此软件包感兴趣:https://github.com/Froiden/laravel-installer
[查看代码以查看他如何处理迁移和种子等。