🐘

pg_dump を“読む”時代へ。PostgreSQLダンプ可視化ツール PgDumpLens を作った話

に公開

はじめに

PostgreSQL を使っていると、こんな瞬間ありませんか?

  • DB の pg_dump をもらったけど 中身が全然わからない
  • テーブル削除前に どこに影響が出るか怖い
  • マイグレーション前後で 何が変わったか把握したい
  • SQL を書かずに データやリレーションを眺めたい

そこで作ったのが PgDumpLens です。
pg_dump / pg_dumpall のダンプファイルをアップロードするだけで、
構造・データ・リスク・差分 をブラウザで可視化できるツールです。

この記事では、

  • なぜ作ったのか
  • 何ができるのか
  • どんな人に刺さるのか

を中心に紹介します。


PgDumpLens とは?

PgDumpLens は PostgreSQL のダンプファイル専用ビューアです。

Visualize and analyze PostgreSQL dump files
ER diagrams, data browsing, impact risk assessment

特徴を一言でいうと、

👉 「pg_dump を Web UI で読む」

です。

対応しているダンプ形式

  • pg_dump -Fp(Plain SQL)
  • pg_dump -Fc(Custom format)
  • gzip 圧縮(.sql.gz, .dump.gz
  • pg_dumpall(複数 DB)

拡張子ではなく マジックバイト判定なので、
雑に渡された dump ファイルでもおおよそ問題ありません。


主な機能

1️⃣ スキーマ・ER図の自動生成

テーブル名をクリック後の画面上部:

下部:

ダンプをアップロードすると、テーブル構造とリレーションを自動解析します。

  • テーブル一覧
  • カラム情報(PK / FK / NOT NULL / UNIQUE)
  • ER図を Mermaid.js で自動生成
  • PNG / Mermaid コードとしてエクスポート可能

👉 「この DB、全体像どうなってるんだっけ?」を即解決。


2️⃣ データをそのままブラウザで閲覧

各テーブルのデータを UI 上で確認できます。

  • ページネーション
  • カラムソート
  • 値フィルタ
  • CSV / JSON コピー
  • 行列転置表示(地味に便利)

SQL を1行も書かずにデータ確認できます。


3️⃣ リレーションシップ探索(いちばんこだわった機能)

セルをクリックすると、その値が

  • どのテーブルを参照しているか(Outbound)
  • どのテーブルから参照されているか(Inbound)

実データ行数つき で表示します。

さらに:

  • JOIN クエリのサンプル SQL を自動生成
  • 削除時の 影響リスクをスコア化


Data タブから ⬅️ や 🔗 がついているセルをクリック

users.id = 123
Risk: 65/100 (High)

• 450 rows reference this value
• DELETE CASCADE will affect orders
• This is a primary key column

👉 「消していいか?」を感覚ではなく 数値で判断できます。


4️⃣ 全文検索(DB横断)

  • 全テーブル・全カラムを横断検索
  • TEXT / VARCHAR / JSON / JSONB 対応
  • UUID やメールアドレスも OK

検索結果には

  • ヒットした値
  • フル行データ(JSON)
  • 再現用 SQL

が表示されます。

👉 個人情報調査、設定値探索にかなり便利です。


5️⃣ ダンプ差分比較(スキーマ + データ)

2つのダンプを比較できます。

  • テーブル / カラム / 外部キー差分
  • データ差分も自動検出
  • 行単位での追加・削除・変更表示

マイグレーション前後や
ステージング vs 本番比較に使えます。


6️⃣ pg_dumpall(マルチDB)対応

pg_dumpall のダンプもそのまま扱えます。

  • DB 切り替え
  • DB 横断全文検索
  • DB ごとの ER 図

👉 「巨大 dump」も怖くありません。


技術構成

ざっくり構成はこんな感じです。

  • Frontend: Next.js (App Router)

  • Backend: Rust + Axum

  • Worker: 非同期ジョブ(解析・差分計算)

  • DB

    • Metadata DB(解析結果用)
    • Sandbox DB(ダンプ復元用)

すべて Docker Compose で起動できます。

docker compose up -d

制限環境・オフライン向け構成も用意しています。


どんな人におすすめ?

  • PostgreSQL を運用している人
  • 本番 dump を解析する機会がある人
  • DB 構造を 人に説明する 立場の人
  • マイグレーションや削除が怖い人
  • SQL を書く前に全体像を把握したい人

特に 「削除が怖い」や「簡単に検索をしたい」人 にはかなり刺さると思います。


まとめ

PgDumpLens は、

  • pg_dump を 安全に
  • 視覚的に
  • 理解できる

ようにするためのツールです。

「dump をもらった瞬間の絶望」を減らしたい、
そんな気持ちで作りました。

もし同じ悩みを持っていたら、ぜひ触ってみてください 🙌


リポジトリ

GitHub: https://github.com/pkaiy81/pgdumplens

Star などもらえるとめちゃくちゃ励みになります ⭐️

Discussion