menu
languageFrançais
save_alt Télécharger

DB Manager Pro

Clonage en direct par flux, sauvegardes intelligentes, schema diff, audit de santé, générateur de données fictives et détection automatique Docker/.env.

par T3zcaDev Plugin communautaire

Readme

Ce texte a été écrit par un tiers et traduit automatiquement. Lire l'original en anglais

Version Licence Beekeeper Studio

Plugin et suite d'outils avancés pour Beekeeper Studio (v5.4+). Développé par T3zcaDev.


✨ Fonctionnalités principales

  1. 📸 Snapshots & sauvegardes intelligentes (1 clic)":
    • Sauvegardes compressées à la volée avec Zstandard (zstd -3) ou Gzip haute vitesse.
    • Moteur hybride : utilise un dump direct via pipes si le daemon est actif, ou un dump natif depuis le navigateur avec CompressionStream s'il est hors ligne.
    • Explorateur local de snapshots avec date, taille et moteur, plus restauration assistée avec fenêtre de confirmation et protection contre le path traversal.
  2. 🔄 Clonage direct en temps réel (Stream A ➔ B) :
    • Transfère des bases de données complètes entre serveurs (Production/Staging ➔ Local/Docker) en temps réel via des pipes, sans fichier temporaire sur le disque.
    • Nettoyage automatique : supprime les instructions conflictuelles (DEFINER, USE, CREATE DATABASE, SQL_LOG_BIN).
    • Filtrage de tables et Data Masking : exclut les tables de télémétrie et masque à la volée les e-mails et données sensibles.
  3. ⚖️ Schema Diff V2 multi-moteur & migrations :
    • Prise en charge multi-moteur de MySQL / MariaDB et PostgreSQL.
    • Détection des tables manquantes, colonnes manquantes, différences de type, index et clés étrangères.
    • Export double : génère un script DDL natif et du code de migration Laravel (Blueprint avec les méthodes up() et down()). Un bouton permet de l'ouvrir directement dans l'éditeur SQL de Beekeeper Studio ou de l'enregistrer en .sql / .php.
  4. 🩺 Audit de santé & performances (Health Auditor) :
    • Score global de santé (0 - 100) avec code couleur et pénalités configurées.
    • Tables sans Primary Key : alerte sur les tables qui dégradent la réplication par lignes (RBR) et les performances.
    • Index redondants : détecte les index en doublon exact et les préfixes redondants qui ralentissent les écritures INSERT/UPDATE.
    • Répartition du stockage : analyse de la taille des données vs index par table.
    • Moniteur de processus en direct : affiche les threads et requêtes actives (SHOW PROCESSLIST / pg_stat_activity) avec un bouton pour arrêter une requête en toute sécurité (KILL QUERY <id>).
  5. 🧪 Générateur intelligent de données fictives & peuplement en cascade (DAG) :
    • Remplit n'importe quelle table avec des données réalistes grâce à Faker.
    • Tout peupler en cascade (Graph Seeding) : résout le graphe de dépendances des clés étrangères vers les tables vides, en peuplant d'abord les tables parentes puis en injectant automatiquement leurs ID dans les tables enfants.
    • Export des seeds : exporte en .sql (INSERT INTO), .csv et .json.
  6. 🐳 Auto-Discovery (Docker & projets locaux) :
    • Détecte les conteneurs actifs (docker ps) MySQL, Postgres, MongoDB, Redis, ClickHouse et SQL Server avec le mappage des ports sur l'hôte.
    • Extrait les identifiants des fichiers .env locaux, prêts à être enregistrés dans Beekeeper.
  7. 📖 Dictionnaire de données :
    • Exporte la documentation technique de la base de données en Markdown ou en HTML statique.

📋 Prérequis

  • Beekeeper Studio 5.4+
  • Node.js 18+ et npm — uniquement si tu installes via l'option B (symlink/développement). L'installateur natif du companion (option A) ne nécessite pas Node.js.
  • mysql/mysqldump, psql/pg_dump, mongodump, docker (selon le moteur que tu utilises) — le companion les appelle mais ne les embarque pas ; consulte Tools ➔ DB Manager ou /api/status pour voir ceux qu'il détecte.
  • CLI sqlite3 (facultatif, uniquement pour lire les connexions déjà enregistrées dans Beekeeper)

🔒 Confidentialité

Tout le traitement se fait sur ta machine. Le companion daemon écoute uniquement sur 127.0.0.1:58765 (loopback) et ne communique jamais avec des serveurs externes. Tes identifiants de connexion ne quittent jamais ton ordinateur.


🚀 Installation et démarrage automatique

Option A : marketplace de Beekeeper Studio + installateur natif (recommandé)

  1. Installe DB Manager Pro depuis le marketplace de plugins de Beekeeper Studio (Plugins ➔ rechercher « DB Manager Pro »).
  2. La première fois que tu ouvres un outil qui a besoin du companion (Clonage Stream, Auto-Discovery, Schema Diff), tu verras un message « Companion Daemon ne répond pas » avec un bouton Télécharger le Companion — télécharge l'exécutable pour ton système d'exploitation depuis GitHub Releases et ouvre-le d'un double-clic.
  3. C'est tout : l'exécutable s'installe tout seul, s'enregistre pour démarrer automatiquement (Linux systemd --user, macOS LaunchAgent, Windows Startup) et se lance. Pas besoin d'installer Node.js ni d'ouvrir un terminal.

L'installateur n'est pas encore signé (voir docs/COMPANION.md), donc Windows/macOS afficheront un avertissement de sécurité la première fois — ce document explique exactement sur quel bouton cliquer pour continuer.

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 lance déjà le companion daemon en arrière-plan et le configure pour démarrer automatiquement, en pointant vers le dépôt cloné (pas vers le binaire natif) — aucune commande supplémentaire ni réouverture de terminal n'est nécessaire pour utiliser le plugin.

Beekeeper Studio 6.2+ : le système de plugins a ajouté unlistedDisabled, activé par défaut. Pour que Beekeeper charge le symlink de développement, ajoute ceci à ~/.config/beekeeper-studio/user.config.ini :

[pluginSystem]
disabled = false
unlistedDisabled = false
communityDisabled = false

Gestion manuelle du service (facultatif)

Tu n'en as besoin que si tu as installé avec npm install --ignore-scripts, déplacé le dossier du projet ou si tu veux le désactiver :

# (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

(Tu peux aussi le lancer temporairement dans un terminal avec npm run server si tu préfères ça au service persistant.)

Ouvrir dans Beekeeper Studio

  1. Ouvre Beekeeper Studio et connecte-toi à n'importe quelle base de données.
  2. Chaque outil est accessible directement depuis la barre supérieure dans Tools:
    • Tools ➔ DB Manager: Snapshots & Backups
    • Tools ➔ DB Manager: Clonado Stream (A ➔ B)
    • Tools ➔ DB Manager: Schema Diff & Migraciones
    • Tools ➔ DB Manager: Auditor de Salud & Rendimiento
    • Tools ➔ DB Manager: Generador Mock Data
    • Tools ➔ DB Manager: Diccionario de Datos
    • Tools ➔ DB Manager: Auto-Discovery (Docker & .env)
    • Ou clic droit sur n'importe quelle table ➔ DB Manager: Mock Data para esta tabla.

Mode développement avec Hot Reload (facultatif)

Pour modifier les composants Vue et voir les changements instantanément :

npm run dev

📦 Compilation et releases

npm run build            # frontend del plugin -> dist/
npm run companion:build  # binario nativo del companion para tu SO -> build/

Chaque push d'un tag vX.Y.Z déclenche .github/workflows/release.yml, qui compile et publie une seule GitHub Release contenant :

  • manifest.json et bks-db-manager-{version}.zip (frontend du plugin, selon le processus de publication de Beekeeper Studio Plugins).
  • bks-db-manager-companion-{linux-x64,linux-arm64,darwin-arm64,win-x64}.{tar.gz,zip} + leur .sha256 (l'installateur natif du companion, voir docs/COMPANION.md) — sans version dans le nom, pour pouvoir toujours les lier depuis /releases/latest/download/. macOS Intel (x64) est en attente à cause d'un bug ouvert de Node.js (nodejs/node#62893).

🤝 Contribuer

Les issues et pull requests sont les bienvenues. Avant d'ouvrir une grosse PR, ouvre d'abord une issue pour discuter du changement.

📄 Licence

Ce projet est sous licence GPLv3 — voir LICENSE pour le texte complet.

👤 Auteur

T3zcaDev — GitHub (@JonathanHerSa)