最近我把一個業余打磨了挺久的項目開源了:shirube,日語“標べ”,指路標。它是一個本地優先的 PostgreSQL 模式探索工具,能把你的數據庫讀成一張可交互的地圖。最新測試版還塞進了一個 AI 導航器,你可以直接用自然語言問 schema 相關的問題,它會在地圖上標出關聯的表和關系。
這篇文章想聊聊:我為什么要做這個工具,為什么 AI 編碼時代理解數據庫依然很關鍵,以及 shirube 現在能做什么。
![]()
一個不爭的事實是,我們手寫 SQL 越來越少了。ORM、查詢構造器、AI 編碼助手徹底改變了與數據庫的交互方式。在很多應用里,數據庫訪問不再以原始 SQL 的形式出現——表躲在模型后面,關系掛在方法后面,而越來越多的代碼可以由 AI 生成或修改。挺方便的,我自己也用這些工具。
但底下的 schema 可沒消失。
當 AI 編碼工具寫出一層數據訪問代碼,我仍然得搞清楚它在干什么:它讀了哪些表?碰了哪些列?走了哪些關系?那條 join 路徑真的是應用該用的嗎?即使只是向 AI 求助同樣的問題也一樣——如果我連數據庫的大致形狀都不清楚,就很難提出一個好問題,更別說判斷答案對不對了。
AI 能幫你寫查詢,但理解數據模型的責任,一步都不能甩。
大部分數據庫工具的起點是一串表名。如果你已經知道自己要找什么——打開某個表、檢查它的列、預覽幾行數據——表列表確實夠用。可當你試圖理解整個數據庫是如何串聯起來的時候,光有列表就完全不夠用了。
表列表只給你一個個孤立的對象。它不會自然地告訴你每張表引用了誰,又被誰引用,哪條路徑才能通向你要的數據。關系恰恰是我最需要追蹤的東西,但也最容易在列表里迷失。這正是我想讓 shirube 把數據庫處理成“地圖”而非“目錄”的原因。
連接 shirube 到某個 PostgreSQL 數據庫后,它會讀入 schema 并打開一張交互式 ER 地圖。這張地圖會展示表、視圖、物化視圖、列、外鍵以及視圖依賴關系。
它不會一次性把所有表都攤出來。shirube 從一張表及其近鄰表開始畫,你可以點擊關聯表把地圖重新居中,然后一步一步順著 schema 往前探索。這是故意的——大型 schema 如果全鋪開會變得毫無可讀性。我期望這張地圖不那么像一張靜止的圖表,更像是你在數據庫里旅行的一種方式。
選中一張表,shirube 還能同時展示它的列、主鍵、是否可為空,以及雙向的關聯關系。如果你需要核實實際行數據,也能打開一個只讀的數據預覽,帶著排序、篩選和分頁。最新加入的 AI 導航器,則允許你直接用自然語言描述問題,讓地圖自動聚焦到相關區域——依然不會藏著掖著,你始終能看見整個檢索過程走的哪些表、哪些路徑。
一個不繞彎子的結論:工具再聰明,替不掉你對自家數據的了解。shirube 的設計從一開始就沒想著取代你的數據庫知識,而是希望成為一份活的地圖——當你需要在陌生的 schema 中快速定位時,它能拉住你,而不是替你走路。
特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.