Laravel:检测是否正在运行迁移

时间:2019-03-14 17:25:09

标签: laravel migration

我已经设置了一些事件侦听器,我想在其中检测我是否正在运行runnnig数据库迁移或正常的请求/命令。

是否有某种了解方法?全局标志?环境?

谢谢。

1 个答案:

答案 0 :(得分:0)

您可以检查控制台是否与App::runningInConsole()一起使用...可能就足够了,具体取决于您如何运行迁移。

更新

好吧,在进行了一些进一步的挖掘之后,您似乎可以使用以下示例来破解所需信息的方式:

if(app()->runningInConsole()) {
    // we are running in the console
    $argv = \Request::server('argv', null);

    // :$ php artisan migrate:refresh -v
    //
    // gives:
    //
    // $argv = array (
    //      0 => 'artisan',
    //      1 => 'migrate:refresh',
    //      2 => '-v',
    // )  

    if($argv[0] == 'artisan' && \Illuminate\Support\Str::contains($argv[1],'migrate')) {
        // we are running the artisan migrate command
    }
}

来源:How to get the current console command in Laravel