menu
languageΕλληνικά
save_alt Λήψη

DB Manager Pro

Κλωνοποίηση με live stream, έξυπνα backup, schema diff, έλεγχος υγείας, γεννήτρια mock δεδομένων και αυτόματος εντοπισμός Docker/.env.

από T3zcaDev Plugin της κοινότητας

Readme

Αυτό το κείμενο γράφτηκε από τρίτους και μεταφράστηκε αυτόματα. Διάβασε το πρωτότυπο στα αγγλικά

Έκδοση Άδεια Beekeeper Studio

Plugin και σουίτα προηγμένων εργαλείων για το Beekeeper Studio (v5.4+). Αναπτύχθηκε από τον T3zcaDev.


✨ Κύρια χαρακτηριστικά

  1. 📸 Snapshots & έξυπνα backup (1-Click):
    • Συμπιεσμένα backup σε πραγματικό χρόνο με Zstandard (zstd -3) ή Gzip υψηλής ταχύτητας.
    • Υβριδική μηχανή: Χρησιμοποιεί απευθείας dump μέσω pipes αν ο daemon είναι ενεργός, ή εγγενές dump από τον browser με CompressionStream αν είναι offline.
    • Τοπικός εξερευνητής snapshots με ημερομηνία, μέγεθος και μηχανή, καθώς και υποβοηθούμενη επαναφορά με παράθυρο επιβεβαίωσης και προστασία από path traversal.
  2. 🔄 Απευθείας ζωντανή κλωνοποίηση (Stream A ➔ B):
    • Μεταφέρει ολόκληρες βάσεις δεδομένων μεταξύ servers (Production/Staging ➔ Local/Docker) σε πραγματικό χρόνο μέσω pipes, χωρίς να αποθηκεύει προσωρινά αρχεία στον δίσκο.
    • Αυτόματος καθαρισμός: Αφαιρεί προβληματικές εντολές (DEFINER, USE, CREATE DATABASE, SQL_LOG_BIN).
    • Φιλτράρισμα πινάκων και Data Masking: Εξαιρεί πίνακες telemetry και αποκρύπτει emails και ευαίσθητα δεδομένα σε πραγματικό χρόνο.
  3. ⚖️ Schema Diff V2 για πολλές μηχανές & Migrations:
    • Υποστήριξη πολλών μηχανών για MySQL / MariaDB και PostgreSQL.
    • Εντοπισμός πινάκων που λείπουν, στηλών που λείπουν, αποκλίσεων τύπων, indexes και foreign keys.
    • Διπλή εξαγωγή: Δημιουργεί εγγενές script DDL και κώδικα migration για Laravel (Blueprint με μεθόδους up() και down()). Κουμπί για άνοιγμα απευθείας στον SQL editor του Beekeeper Studio ή αποθήκευση ως .sql / .php.
  4. 🩺 Έλεγχος υγείας & απόδοσης (Health Auditor):
    • Συνολική βαθμολογία υγείας (0 - 100) με φανάρι και ρυθμισμένες ποινές.
    • Πίνακες χωρίς Primary Key: Ειδοποίηση για πίνακες που υποβαθμίζουν το row-based replication (RBR) και την απόδοση.
    • Περιττά indexes: Εντοπίζει ακριβώς διπλότυπα indexes και περιττά προθέματα που επιβραδύνουν τις εγγραφές INSERT/UPDATE.
    • Ανάλυση αποθηκευτικού χώρου: Μέγεθος δεδομένων έναντι indexes ανά πίνακα.
    • Ζωντανή παρακολούθηση διεργασιών: Δες τα ενεργά threads και queries (SHOW PROCESSLIST / pg_stat_activity) με κουμπί για ασφαλή διακοπή query (KILL QUERY <id>).
  5. 🧪 Έξυπνη γεννήτρια Mock Data & διαδοχική συμπλήρωση (DAG):
    • Γεμίζει οποιονδήποτε πίνακα με ρεαλιστικά δεδομένα μέσω Faker.
    • Διαδοχική συμπλήρωση όλων (Graph Seeding): Επιλύει τον γράφο εξαρτήσεων των foreign keys προς κενούς πίνακες, γεμίζοντας πρώτα τους γονικούς πίνακες και εισάγοντας αυτόματα τα IDs τους στους θυγατρικούς.
    • Εξαγωγή Seeds: Εξαγωγή σε .sql (INSERT INTO), .csv και .json.
  6. 🐳 Auto-Discovery (Docker & τοπικά projects):
    • Εντοπίζει ενεργά containers (docker ps) MySQL, Postgres, MongoDB, Redis, ClickHouse και SQL Server με αντιστοίχιση θυρών στο host.
    • Εξάγει διαπιστευτήρια από τοπικά αρχεία .env, έτοιμα για αποθήκευση στο Beekeeper.
  7. 📖 Λεξικό δεδομένων:
    • Εξάγει την τεχνική τεκμηρίωση της βάσης δεδομένων σε Markdown ή στατικό HTML.

📋 Προαπαιτούμενα

  • Beekeeper Studio 5.4+
  • Node.js 18+ και npm — μόνο αν κάνεις εγκατάσταση με την Επιλογή B (symlink/ανάπτυξη). Ο εγγενής installer του companion (Επιλογή A) δεν απαιτεί Node.js.
  • mysql/mysqldump, psql/pg_dump, mongodump, docker (ανάλογα με τη μηχανή που χρησιμοποιείς) — ο companion τα καλεί αλλά δεν τα περιλαμβάνει· δες το Tools ➔ DB Manager ή το /api/status για να δεις ποια εντοπίζει.
  • sqlite3 CLI (προαιρετικό, μόνο για ανάγνωση συνδέσεων που έχουν ήδη αποθηκευτεί στο Beekeeper)

🔒 Απόρρητο

Όλη η επεξεργασία γίνεται στον υπολογιστή σου. Ο companion daemon ακούει μόνο στο 127.0.0.1:58765 (loopback) και δεν επικοινωνεί ποτέ με εξωτερικούς servers. Τα διαπιστευτήρια σύνδεσης δεν φεύγουν ποτέ από τον υπολογιστή σου.


🚀 Εγκατάσταση και αυτόματη εκκίνηση

Επιλογή A: Marketplace του Beekeeper Studio + εγγενής installer (προτείνεται)

  1. Εγκατέστησε το DB Manager Pro από το marketplace plugins του Beekeeper Studio (Plugins ➔ αναζήτηση “DB Manager Pro”).
  2. Την πρώτη φορά που θα ανοίξεις ένα εργαλείο που χρειάζεται τον companion (Clonado Stream, Auto-Discovery, Schema Diff), θα δεις την ειδοποίηση “Companion Daemon no responde” με ένα κουμπί Descargar Companion — κατέβασε το εκτελέσιμο για το λειτουργικό σου από το GitHub Releases και άνοιξέ το με διπλό κλικ.
  3. Αυτό ήταν: το εκτελέσιμο εγκαθίσταται μόνο του, καταχωρείται για αυτόματη εκκίνηση (Linux systemd --user, macOS LaunchAgent, Windows Startup) και ξεκινά. Δεν χρειάζεται να έχεις εγκατεστημένο το Node.js ούτε να ανοίξεις τερματικό.

Ο installer δεν είναι ακόμα υπογεγραμμένος (δες docs/COMPANION.md), οπότε τα Windows/macOS θα εμφανίσουν μια προειδοποίηση ασφαλείας την πρώτη φορά — το έγγραφο εξηγεί ακριβώς ποιο κουμπί να πατήσεις για να συνεχίσεις.

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 daemon να τρέχει στο παρασκήνιο, ρυθμισμένο να ξεκινά αυτόματα και να δείχνει στο κλωνοποιημένο repo (όχι στο εγγενές binary) — δεν χρειάζεται καμία επιπλέον εντολή ούτε να ξανανοίξεις τερματικό για να χρησιμοποιήσεις το plugin.

Beekeeper Studio 6.2+: το σύστημα plugins πρόσθεσε το unlistedDisabled, ενεργό από προεπιλογή. Για να φορτώσει το Beekeeper το symlink ανάπτυξης, πρόσθεσε αυτό στο ~/.config/beekeeper-studio/user.config.ini:

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

Χειροκίνητη διαχείριση της υπηρεσίας (προαιρετικό)

Το χρειάζεσαι μόνο αν έκανες εγκατάσταση με npm install --ignore-scripts, μετακίνησες τον φάκελο του project ή θέλεις να την απενεργοποιήσεις:

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

  1. Άνοιξε το Beekeeper Studio και συνδέσου σε οποιαδήποτε βάση δεδομένων.
  2. Κάθε εργαλείο είναι διαθέσιμο απευθείας από την επάνω μπάρα στο 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)
    • Ή δεξί κλικ σε οποιονδήποτε πίνακα ➔ DB Manager: Mock Data para esta tabla.

Λειτουργία ανάπτυξης με Hot Reload (προαιρετικό)

Για να τροποποιείς components Vue και να βλέπεις τις αλλαγές αμέσως:

npm run dev

📦 Build και Releases

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

Κάθε push ενός tag vX.Y.Z ενεργοποιεί το .github/workflows/release.yml, που κάνει build και δημοσιεύει ένα μόνο GitHub Release με:

  • manifest.json και bks-db-manager-{version}.zip (frontend του plugin, σύμφωνα με τη διαδικασία δημοσίευσης των Beekeeper Studio Plugins).
  • bks-db-manager-companion-{linux-x64,linux-arm64,darwin-arm64,win-x64}.{tar.gz,zip} + το .sha256 τους (ο εγγενής installer του companion, δες docs/COMPANION.md) — χωρίς έκδοση στο όνομα, ώστε να μπορούν πάντα να συνδέονται από το /releases/latest/download/. Το macOS Intel (x64) εκκρεμεί λόγω ενός ανοιχτού bug του Node.js (nodejs/node#62893).

🤝 Συνεισφορά

Τα issues και τα pull requests είναι ευπρόσδεκτα. Πριν ανοίξεις ένα μεγάλο PR, άνοιξε πρώτα ένα issue για να συζητηθεί η αλλαγή.

📄 Άδεια

Αυτό το project διατίθεται με άδεια GPLv3 — δες το LICENSE για το πλήρες κείμενο.

👤 Δημιουργός

T3zcaDev — GitHub (@JonathanHerSa)