Beekeeper Studio(v5.4+)向けの高度なツール群を備えたプラグインです。開発: T3zcaDev。
✨ 主な機能
- 📸 スナップショット & スマートバックアップ(1-Click):
- 高速な Zstandard (
zstd -3) または Gzip でオンザフライ圧縮したバックアップを作成します。 - ハイブリッドエンジン: デーモンが稼働中ならパイプによる直接ダンプを、オフラインならブラウザから
CompressionStreamを使ったネイティブダンプを行います。 - 日付・サイズ・エンジン付きのローカルスナップショットエクスプローラーに加え、確認モーダルとパストラバーサル対策を備えた復元支援機能があります。
- 高速な Zstandard (
- 🔄 ライブ直接クローン(Stream A ➔ B):
- パイプを使い、一時ファイルをディスクに保存することなく、サーバー間(本番/ステージング ➔ ローカル/Docker)でデータベース全体をリアルタイムに転送します。
- 自動サニタイズ: 競合する文(
DEFINER、USE、CREATE DATABASE、SQL_LOG_BIN)を除去します。 - テーブルフィルターとデータマスキング: テレメトリ用テーブルを除外し、メールアドレスや機密データをオンザフライで難読化します。
- ⚖️ マルチエンジン対応 Schema Diff V2 & マイグレーション:
- MySQL / MariaDB と PostgreSQL のマルチエンジンに対応しています。
- 欠落しているテーブルやカラム、型の不一致、インデックス、外部キーを検出します。
- デュアルエクスポーター: ネイティブの DDL スクリプトと Laravel のマイグレーションコード(
up()とdown()メソッドを持つBlueprint)を生成します。ボタン一つで Beekeeper Studio の SQL エディターで直接開くか、.sql/.phpとして保存できます。
- 🩺 ヘルス & パフォーマンス監査(Health Auditor):
- 信号表示と設定済みのペナルティによる総合ヘルススコア(0 - 100)。
- 主キーのないテーブル: 行ベースレプリケーション(RBR)とパフォーマンスを低下させるテーブルを警告します。
- 冗長なインデックス:
INSERT/UPDATEの書き込みを遅くする完全重複インデックスや冗長なプレフィックスを検出します。 - ストレージ内訳: テーブルごとのデータとインデックスのサイズを分析します。
- ライブプロセスモニター: 実行中のスレッドとクエリ(
SHOW PROCESSLIST/pg_stat_activity)を表示し、クエリを安全に停止するボタン(KILL QUERY <id>)を備えています。
- 🧪 スマートなモックデータ生成 & カスケード投入(DAG):
- Faker を使って任意のテーブルにリアルなデータを投入します。
- すべてをカスケード投入(Graph Seeding): 空のテーブルに対する外部キーの依存グラフを解決し、親テーブルを先に投入してから、その ID を子テーブルへ自動的に挿入します。
- シードのエクスポート:
.sql(INSERT INTO)、.csv、.jsonにエクスポートできます。
- 🐳 自動検出(Docker & ローカルプロジェクト):
- MySQL、Postgres、MongoDB、Redis、ClickHouse、SQL Server の稼働中コンテナ(
docker ps)を、ホストのポートマッピングとともに検出します。 - ローカルの
.envファイルから認証情報を抽出し、そのまま Beekeeper に保存できます。
- MySQL、Postgres、MongoDB、Redis、ClickHouse、SQL Server の稼働中コンテナ(
- 📖 データディクショナリ:
- データベースの技術ドキュメントを Markdown または静的 HTML でエクスポートします。
📋 前提条件
- Beekeeper Studio 5.4+
- Node.js 18+ と npm — オプション B(シンボリックリンク/開発)でインストールする場合のみ必要です。companion のネイティブインストーラー(オプション A)では Node.js は不要です。
mysql/mysqldump、psql/pg_dump、mongodump、docker(使用するエンジンに応じて) — companion はこれらを呼び出しますが同梱はしていません。どれが検出されているかはTools ➔ DB Managerまたは/api/statusで確認してください。sqlite3CLI(任意。Beekeeper に保存済みの接続を読み込む場合のみ)
🔒 プライバシー
すべての処理はお使いのマシン上で行われます。companion デーモンは 127.0.0.1:58765(ループバック)でのみ待ち受け、外部サーバーとは一切通信しません。接続の認証情報が端末の外に出ることはありません。
🚀 インストールと自動起動
オプション A: Beekeeper Studio マーケットプレイス + ネイティブインストーラー(推奨)
- Beekeeper Studio のプラグインマーケットプレイスから DB Manager Pro をインストールします(
Plugins➔ 「DB Manager Pro」を検索)。 - companion が必要なツール(Clonado Stream、Auto-Discovery、Schema Diff)を初めて開くと、「Companion Daemon no responde」という通知と Descargar Companion ボタンが表示されます。GitHub Releases からお使いの OS 用の実行ファイルをダウンロードし、ダブルクリックで開いてください。
- これで完了です。実行ファイルが自身をインストールし、自動起動を登録して(Linux
systemd --user、macOSLaunchAgent、WindowsStartup)起動します。Node.js のインストールもターミナルを開く必要もありません。
インストーラーはまだ署名されていないため(docs/COMPANION.md を参照)、初回は Windows/macOS でセキュリティ警告が表示されます。続行するためにどのボタンを押せばよいかは、このドキュメントで詳しく説明しています。
オプション B: 開発/コントリビューション用のシンボリックリンク
git clone https://github.com/JonathanHerSa/bks-db-manager.git
cd bks-db-manager
npm install
npm run build
ln -s "$(pwd)" ~/.config/beekeeper-studio/plugins/t3zca-db-manager
npm install を実行するだけで、companion デーモンがバックグラウンドで起動し、(ネイティブバイナリではなく)クローンしたリポジトリを指す形で自動起動も設定されます。プラグインを使うのに追加のコマンドやターミナルの再起動は不要です。
Beekeeper Studio 6.2+: プラグインシステムに
unlistedDisabledが追加され、デフォルトで有効になっています。開発用シンボリックリンクを Beekeeper に読み込ませるには、~/.config/beekeeper-studio/user.config.iniに以下を追加してください:[pluginSystem] disabled = false unlistedDisabled = false communityDisabled = false
サービスの手動管理(任意)
npm install --ignore-scripts でインストールした場合、プロジェクトフォルダーを移動した場合、または無効化したい場合にのみ必要です:
# (Re)instala el servicio en segundo plano manualmente
npm run daemon:install
# Comprueba que esté activo y respondiendo
npm run daemon:status
# Para desinstalarlo en cualquier momento
npm run daemon:uninstall
(常駐サービスの代わりに、npm run server でターミナル上で一時的に実行することもできます)。
Beekeeper Studio で開く
- Beekeeper Studio を開き、任意のデータベースに接続します。
- 各ツールは上部バーの次の場所から直接利用できます:
Tools:Tools➔DB Manager: Snapshots & BackupsTools➔DB Manager: Clonado Stream (A ➔ B)Tools➔DB Manager: Schema Diff & MigracionesTools➔DB Manager: Auditor de Salud & RendimientoTools➔DB Manager: Generador Mock DataTools➔DB Manager: Diccionario de DatosTools➔DB Manager: Auto-Discovery (Docker & .env)- または任意のテーブルを右クリック ➔
DB Manager: Mock Data para esta tabla。
ホットリロード付き開発モード(任意)
Vue コンポーネントを編集して変更を即座に反映させるには:
npm run dev
📦 ビルドとリリース
npm run build # frontend del plugin -> dist/
npm run companion:build # binario nativo del companion para tu SO -> build/
vX.Y.Z タグをプッシュするたびに .github/workflows/release.yml が実行され、次の内容を含む GitHub Release を1つだけビルドして公開します:
manifest.jsonとbks-db-manager-{version}.zip(Beekeeper Studio Plugins の公開プロセスに従ったプラグインのフロントエンド)。bks-db-manager-companion-{linux-x64,linux-arm64,darwin-arm64,win-x64}.{tar.gz,zip}とその.sha256(companion のネイティブインストーラー。docs/COMPANION.md を参照) — 常に/releases/latest/download/からリンクできるよう、ファイル名にバージョンは含みません。macOS Intel (x64) は Node.js の未解決のバグ(nodejs/node#62893)のため保留中です。
🤝 コントリビューション
Issue や Pull Request を歓迎します。大きな PR を出す前に、まず Issue を作成して変更内容について相談してください。
📄 ライセンス
このプロジェクトは GPLv3 でライセンスされています。全文は LICENSE をご覧ください。
👤 作者
T3zcaDev — GitHub (@JonathanHerSa)