>_ DevTrendsfr

Langue

Accueil

Langages

Sections

Frontend Backend Mobile DevOps AI / ML GameDev Blockchain Embarqué Sécurité
JavaScript

DbGate : un client de base de données universel pour le web et le desktop

D'habitude, une stack backend moderne n'est pas limitée à un seul SGBD. Un projet peut facilement utiliser PostgreSQL pour le modèle relationnel principal, Redis pour le cache et les sessions, ClickHouse pour les logs analytiques, et MongoDB pour les documents non structurés. Dans cette situation, ouvrir quatre clients lourds différents ou garder plusieurs onglets DBeaver ouverts est un plaisir douteux.

J'ai récemment découvert DbGate. C'est un projet sous licence GPL-3.0 qui vise à résoudre le problème du zoo de bases de données avec une approche unifiée. La partie la plus intéressante est que le client fonctionne aussi bien comme application desktop sur Electron que comme interface web légère dans un conteneur Docker.

Ce que le projet peut faire

DbGate supporte les sources de données SQL et NoSQL. La liste de compatibilité inclut Postgres, MySQL, SQLite, SQL Server, Oracle, MariaDB, ClickHouse, DuckDB, CockroachDB, Firebird, Cassandra, MongoDB et Redis.

L'outil gère l'administration routine des données et offre plusieurs fonctionnalités non standard :

  • Navigation à travers les relations de clé étrangère. En vue tableau, vous pouvez développer les enregistrements enfants d'une table liée directement depuis une ligne (Master/Detail) ou récupérer des colonnes via la clé étrangère sans écrire de JOIN manuellement.
  • Voir et éditer les données avec génération de script de modification. Vous cliquez sur les cellules, modifiez les valeurs, et avant d'envoyer à la base de données, vous pouvez examiner le patch SQL généré.
  • Constructeur de requêtes visuel. Vous aide à esquisser la structure d'une requête à la souris si vous êtes trop paresseux pour écrire de longues expressions à la main, incluant les sélections avec WHERE NOT EXISTS.
  • Visionneuse intégrée pour les fichiers NDJSON, JSON, CSV et Excel. Les gros fichiers NDJSON peuvent même être ouverts et édités directement sur le disque sans importation préalable.
  • Diagrammes ER et comparaison de schéma avec génération de synchronisation de migration.
  • Visualisation de données sur cartes pour les colonnes GEO et création de graphiques simples avec export HTML.

Comment fonctionne l'architecture

Sous le capot, le projet utilise une stack très pratique :

  • Le frontend est écrit en Svelte. L'interface répond rapidement, n'est pas surchargée de nœuds DOM inutiles et rend les grands tableaux virtualisés swiftly.
  • Le backend fonctionne sur Node.js et Express, utilisant des connecteurs de base de données standards.
  • La version desktop enveloppe tout dans Electron pour Windows, Linux et macOS.

La modularité est intéressante. De nombreuses utilitaires sont divisés en packages NPM séparés. Par exemple, si vous avez besoin d'un pipeline pour l'export planifié de données CSV, les scripts Node.js peuvent fonctionner de manière autonome sur un serveur sans interface graphique.

De plus, un système de plugins est implémenté. En écrivant un petit module en TypeScript ou JavaScript, vous pouvez brancher un driver personnalisé ou ajouter un parser pour un format de fichier rare.

Démarrage rapide

Si vous voulez essayer le client sans l'installer sur votre machine, le moyen le plus simple est de lancer la version web dans Docker :

docker run -it --name dbgate-instance --restart always -p 3000:3000 dbgate/dbgate

Après cela, ouvrez http://localhost:3000 dans votre navigateur et connectez-vous aux bases de données locales ou distantes.

Pour ceux qui veulent construire le projet en local et explorer le code source :

git clone https://github.com/dbgate/dbgate.git
cd dbgate
yarn
yarn start

La commande lancera le backend sur le port 3000 et l'interface web sur le port 5001.

Cas d'utilisation

En pratique, DbGate couvre parfaitement deux tâches :

  1. Outil personnel pour développeur. Remplace la combinaison de DBeaver, RedisInsight et MongoDB Compass sans avaler des gigaoctets de RAM au démarrage.
  2. Tableau de bord interne pour l'équipe sur un serveur. En lançant l'image Docker dans un réseau fermé, vous donnez aux analystes et développeurs accès aux bases de données via une interface web unifiée sans que chaque personne ait besoin de configurer des tunnels SSH et des utilitaires locaux.

À qui c'est destiné

Si vous êtes fatigué des temps de démarrage lents des clients Java lourds ou de basculer entre des programmes séparés pour Redis et PostgreSQL, DbGate vaut définitivement le détour. Le projet est activement développé, distribué sous licence libre, et disponible en versions desktop et serveur.

Projets similaires