如何在没有工匠的情况下运行 laravel 迁移(使用代码)
Posted
技术标签:
【中文标题】如何在没有工匠的情况下运行 laravel 迁移(使用代码)【英文标题】:How to run laravel migrations without artisan (using code) 【发布时间】:2017-11-20 09:07:39 【问题描述】:我最近在共享主机上托管了一个 laravel 项目(为客户),在尝试通过 ssh 访问服务器失败后,我联系了主机,告诉我 ssh 服务不适用于我的客户托管计划,这意味着我无法访问终端,也无法使用工匠。我知道如何编写一个将创建 sql 表的 php 脚本,但在此之前,我想知道 laravel 是否有一个快捷方式,因为迁移(表)已经定义。我想要的是创建一条路线project.com/run_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
查看代码以了解他如何处理迁移和种子等。
【讨论】:
以上是关于如何在没有工匠的情况下运行 laravel 迁移(使用代码)的主要内容,如果未能解决你的问题,请参考以下文章