控制檯實時檢視 sql

ruby發表於2019-09-05

listen-sql 一個在控制檯看到實時 sql 操作的工具

**2019-09-09 23:37 修復了名稱空間錯誤

在 Laravel 中列印 sql,以往的做法往往是,透過 DB::listen 監聽,然後透過 Log::info 寫入到 log 中。

這樣寫入的 log,我們想檢視往往是去 storage 資料夾下找到當天的 log 檔案,然後開啟。有個不好的地方是,如果在編輯器開啟,往往不會實時更新。請求完之後,可能需要切到其他 tab 再切換回來才會更新。同時,太多的 sql 日誌會和其他 log 混雜在一起,會顯得有些混亂。

除此之外,也可以 tail -f storage/logs/xx.log 來實時檢視 log 的輸出。這樣有個不好的地方是,如果在 config/app.php 定義了 log => 'daily',每天都要輸入一個新的檔名。

現在,我們可以只使用一個命令來實現監聽應用裡的 sql 操作。

控制檯實時檢視 sql

安裝

1.透過 composer 安裝 (eleven26/listen-sql)。

composer require "eleven26/listen-sql:~1.0.4" --dev

2.註冊 Service Provider

  • Laravel: 修改檔案 config/app.phpLaravel 5.5+ 不需要

    'providers' => [
        //...
        Eleven26\ListenSql\ListenSqlServiceProvider::class,
    ],
  • Lumen: 修改檔案 bootstrap/app.php

    $app->register(Eleven26\ListenSql\ListenSqlServiceProvider::class);

使用

php artisan listen-sql:start

到這一步,去頁面重新整理的時候,就可以在控制檯看到 sql 語句了

本作品採用《CC 協議》,轉載必須註明作者和本文連結

相關文章