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

标签 laravel migration

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

有没有办法知道这一点?全局旗帜?环境?

提前致谢。

最佳答案

您可以检查控制台是否正在使用 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

关于Laravel:检测是否正在运行迁移,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55168645/

相关文章:

php - 如何在 laravel 中忽略某些有条件的字段的验证

php - 无法更新 Laravel 模型可见属性

php - 如何修复 Laravel 中的 "php artisan migrate"错误

database - 迁移中的 Laravel 关系?

c# - 真正让 C# 人理解 Java-ME 的最佳方式

mysql - 如果一个表有关系则加载它的多个关系

laravel - Laravel 上的多个 SESSION_DOMAIN

php - Laravel 图表 : Passing variable to handler function

migration - Pluralsight 类(class)中的 EF7 迁移

python - Django 是否有像 South 这样的 SQLAlchemy 自动迁移工具?