>_ DevTrendsnl

Taal

Home

Talen

Secties

Frontend Backend Mobiel DevOps AI / ML GameDev Blockchain Embedded Beveiliging
JavaScript

DbGate: een universele databaseclient voor web en desktop

Meestal is een moderne backend-stack niet beperkt tot slechts één DBMS. Een project kan gemakkelijk PostgreSQL hebben voor het hoofdrelationele model, Redis voor caching en sessies, ClickHouse voor analytische logs en MongoDB voor ongestructureerde documenten. In deze situatie is het openen van vier verschillende zware clients of het openhouden van meerdere DBeaver-tabbladen een twijfelachtig genoegen.

Ik stuitte onlangs op DbGate. Het is een GPL-3.0-gelicentieerd project dat het database-dierenparkprobleem wil oplossen met een uniforme aanpak. Het meest interessante is dat de client even goed werkt als desktop-applicatie op Electron en als lichtgewicht webinterface in een Docker-container.

Wat het project kan doen

DbGate ondersteunt zowel SQL- als NoSQL-databronnen. De compatibiliteitslijst omvat Postgres, MySQL, SQLite, SQL Server, Oracle, MariaDB, ClickHouse, DuckDB, CockroachDB, Firebird, Cassandra, MongoDB en Redis.

Het hulpmiddel verwerkt routine data-administratie en biedt verschillende niet-standaard functies:

  • Navigatie door Foreign Key-relaties. In tabelview kun je gerelateerde records uit een gerelateerde tabel direct vanuit een rij bekijken (Master/Detail) of kolommen ophalen via foreign key zonder zelf JOINs te schrijven.
  • Gegevens bekijken en bewerken met wijzigingsscript-generatie. Je klikt op cellen, bewerkt waarden en voordat je naar de database verzendt, kun je het gegenereerde SQL-patch bekijken.
  • Visuele querybouwer. Helpt je om een querystructuur met de muis te schetsen als je te lui bent om lange expressies met de hand te schrijven, inclusief selecties met WHERE NOT EXISTS.
  • Ingebouwde viewer voor NDJSON-, JSON-, CSV- en Excel-bestanden. Grote NDJSON-bestanden kunnen zelfs direct op schijf worden geopend en bewerkt zonder vooraf te importeren.
  • ER-diagrammen en schemavergelijking met migratiesynchronisatiegeneratie.
  • Datavisualisatie op kaarten voor GEO-kolommen en het bouwen van eenvoudige grafieken met HTML-export.

Hoe de architectuur werkt

Onder de motorkap gebruikt het project een zeer praktische stack:

  • De frontend is geschreven in Svelte. De interface reageert snel, is niet overladen met onnodige DOM-nodes en rendert grote gevirtualiseerde tabellen vlot.
  • De backend draait op Node.js en Express, met standaard database-connectors.
  • De desktop-build verpakt alles in Electron voor Windows, Linux en macOS.

De modulariteit is interessant. Veel utilities zijn opgesplitst in aparte NPM-pakketten. Als je bijvoorbeeld een pipeline nodig hebt voor geplande CSV-data-export, kunnen Node.js-scripts autonoom draaien op een server zonder grafische interface.

Daarnaast is er een plugin-systeem geïmplementeerd. Door een kleine module te schrijven in TypeScript of JavaScript, kun je een aangepaste driver of een parser voor een zeldzaam bestandsformaat aansluiten.

Snel aan de slag

Als je de client wilt proberen zonder deze op je machine te installeren, is de eenvoudigste manier om de webversie in Docker te draaien:

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

Open daarna http://localhost:3000 in je browser en maak verbinding met lokale of externe databases.

Voor degenen die het project lokaal willen bouwen en in de broncode willen duiken:

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

Het commando start de backend op poort 3000 en de webinterface op poort 5001.

Gebruiksscenario's

In de praktijk dekt DbGate uitstekend twee taken:

  1. Persoonlijk ontwikkelaarshulpmiddel. Vervangt de combinatie van DBeaver, RedisInsight en MongoDB Compass zonder gigabytes RAM te verbruiken bij het opstarten.
  2. Intern teamdashboard op een server. Door de Docker-image op te zetten binnen een gesloten netwerk, geef je analisten en ontwikkelaars toegang tot databases via een uniforme webinterface, zonder dat elke persoon SSH-tunnels en lokale hulpprogramma's hoeft te configureren.

Voor wie is het

Als je genoeg hebt van trage opstarttijden van zware Java-clients of het schakelen tussen aparte programma's voor Redis en PostgreSQL, is DbGate zeker het proberen waard. Het project wordt actief ontwikkeld, gedistribueerd onder een gratis licentie en is beschikbaar in zowel desktop- als servervarianten.

Gerelateerde projecten