Skip to content
All writing Part 09 of 09 · 從筆電連上遠端資料庫
Engineering · 2 min read

sqlit:純鍵盤版的 DBeaver,一頁複習整套模型

收尾複習:把五個座標、通道、docker 打包、一次性 vs REPL 濃縮成一頁,再帶出最後的收穫:一個叫 sqlit 的純鍵盤 DBeaver,在同一個 terminal session 裡跑完整套模型。

整個系列其實只在追一件事:一套「從 terminal 連上遠端資料庫」的心智模型。這裡把那套模型一口氣講完,再帶出最後真正把它包起來的工具。

一頁複習整套模型

  • 一條連線就是五個座標: host / port / user / password / database,URI 只是把它們串成一行。→ 一條連線就是五個座標
  • 一層 tunnel 把遠端 DB 借到 127.0.0.1:PORT managed DB 走 Cloud SQL Proxy,k8s 裡的 DB 走 kubectl port-forward,兩條 auth 路徑、同一個本地 port。→ 兩種通道
  • docker 打包那條 tunnel: image vs build 差在 provenance,COPY 把檔案烤進映像、volume 是即時掛載。→ image vs build
  • 連上之後,query flag 決定模式: 丟一個就是一次性,不丟就進 REPL。→ 一次性查詢 vs REPL

每套資料庫的 CLI,都只是同一個模型換個拼法而已——這句話就是整件事的重點。

收尾:純鍵盤版的 DBeaver

以前我的資料躲在三套不同的工具後面;現在大部分都是一個按鍵就打開:

以前 Postgres · MySQL DBeaver (GUI) ClickHouse port-forward + clickhouse-client MongoDB Compass (GUI) 現在 Postgres · MySQL · ClickHouse sqlit · 一個 TUI MongoDB Compass(模型不同,維持) SQL 那幾套收進 sqlit;MongoDB 維持 Compass
以前三套工具;現在 Postgres、MySQL、ClickHouse 共用 sqlit,MongoDB 維持 Compass。

既然概念一模一樣、只有 flag 的拼法不同,那就有一個工具能把這些 SQL 系的引擎整個包起來。sqlit 做的正是這件事:Postgres、MySQL、ClickHouse 一次都設在裡面,純鍵盤、就在同一個 terminal session 裡打開,不用滑鼠、也不用在 app 之間跳。走的還是我早就在用的 k9s/lazygit 那套「lazy」風格。

MongoDB 則刻意維持 Compass。它的連線模型和查詢語言差得夠多(是 document store 配一個 JavaScript 味的 shell,不是走五座標的 SQL),硬塞進同一個 TUI 只是在假裝它們一樣、其實不一樣。該收斂的是共用同一個模型的那些,不是全部。

於是整條線收回原點:一開始想要的,是 DBeaver 的順手但不離開 terminal;把「筆電 → 遠端 DB」這條路一層一層拆完之後,最後得到的正是一個能替共用模型的那些引擎做到這件事的 TUI。目前正把每天的 SQL 工作流從 DBeaver 搬到 sqlit,到現在為止很順。

同一個模型就用同一個工具:sqlit 一次涵蓋 Postgres、MySQL、ClickHouse。MongoDB 走的是另一套規則,就留給 Compass。


參考來源

Related: 回到遠端資料庫連線總覽;這篇複習了五個座標兩種通道,還有一次性查詢 vs REPL 的分岔。

Tags #databases #cli
// connect

Be brave | Be wise | Be grateful

21 BreakinCode

// elsewhere
LinkedInMedium (lang: en)Youtube
wh:~$William Hung· © 2026 Taipei · GMT+8 · Available for collaboration