>_ DevTrendspl

Język

Strona główna

Języki

Sekcje

Frontend Backend Mobilne DevOps AI / ML GameDev Blockchain Systemy wbudowane Bezpieczeństwo
JavaScript

DbGate: uniwersalny klient baz danych dla sieci i desktopu

Zazwyczaj nowoczesny stack backendowy nie ogranicza się do jednego systemu zarządzania bazą danych. Projekt może z łatwością wykorzystywać PostgreSQL jako główny model relacyjny, Redis do cache'owania i sesji, ClickHouse do analitycznych logów i MongoDB dla dokumentów bez struktury. W takiej sytuacji otwieranie czterech różnych ciężkich klientów lub utrzymywanie wielu kart DBeaver otwartych jest wątpliwą przyjemnością.

Niedawno natknąłem się na DbGate. To projekt na licencji GPL-3.0, który ma na celu rozwiązanie problemu zoo baz danych poprzez ujednolicone podejście. Najciekawsze jest to, że klient działa równie dobrze jako aplikacja desktopowa na Electronie, jak i lekki interfejs webowy w kontenerze Docker.

Co potrafi ten projekt

DbGate obsługuje zarówno źródła danych SQL, jak i NoSQL. Lista kompatybilności obejmuje Postgres, MySQL, SQLite, SQL Server, Oracle, MariaDB, ClickHouse, DuckDB, CockroachDB, Firebird, Cassandra, MongoDB i Redis.

Narzędzie radzi sobie z rutynową administracją danych i oferuje kilka niestandardowych funkcji:

  • Nawigacja przez relacje klucza obcego. W widoku tabeli możesz rozwinąć rekordy potomne z powiązanej tabeli bezpośrednio z wiersza (Master/Detail) lub pobrać kolumny przez klucz obcy bez ręcznego pisania JOIN-ów.
  • Przeglądanie i edycja danych z generowaniem skryptu zmian. Klikasz na komórki, edytujesz wartości, a przed wysłaniem do bazy danych możesz przejrzeć wygenerowany patch SQL.
  • Wizualny konstruktor zapytań. Pomaga nakreślić strukturę zapytania myszką, jeśli nie chce ci się pisać długich wyrażeń ręcznie, w tym selekcji z WHERE NOT EXISTS.
  • Wbudowana przeglądarka plików NDJSON, JSON, CSV i Excel. Duże pliki NDJSON można nawet otwierać i edytować bezpośrednio na dysku bez wcześniejszego importu.
  • Diagramy ER i porównywanie schematów z generowaniem synchronizacji migracji.
  • Wizualizacja danych na mapach dla kolumn GEO i tworzenie prostych wykresów z eksportem HTML.

Jak działa architektura

Pod maską projekt wykorzystuje bardzo praktyczny stack:

  • Frontend napisany jest w Svelte. Interfejs szybko reaguje, nie jest zaśmiecony niepotrzebnymi węzłami DOM i sprawnie renderuje duże zwirtualizowane tabele.
  • Backend działa na Node.js i Express, używając standardowych konektorów baz danych.
  • Build desktopowy opakowuje wszystko w Electron dla Windows, Linuksa i macOS.

Ciekawe jest podejście modularne. Wiele narzędzi jest podzielonych na osobne pakiety NPM. Na przykład, jeśli potrzebujesz pipeline do zaplanowanego eksportu danych CSV, skrypty Node.js mogą działać autonomicznie na serwerze bez interfejsu graficznego.

Dodatkowo zaimplementowano system wtyczek. Pisząc mały moduł w TypeScript lub JavaScript, możesz podłączyć niestandardowy sterownik lub dodać parser dla rzadkiego formatu plików.

Szybki start

Jeśli chcesz wypróbować klienta bez instalacji na swojej maszynie, najłatwiejszym sposobem jest uruchomienie wersji webowej w Dockerze:

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

Po tym otwórz http://localhost:3000 w przeglądarce i połącz się z lokalnymi lub zdalnymi bazami danych.

Dla tych, którzy chcą zbudować projekt lokalnie i zagłębić się w kod źródłowy:

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

Polecenie uruchomi backend na porcie 3000 i interfejs webowy na porcie 5001.

Przypadki użycia

W praktyce DbGate doskonale pokrywa dwa zadania:

  1. Osobiste narzędzie dewelopera. Zastępuje kombinację DBeaver, RedisInsight i MongoDB Compass bez pochłaniania gigabajtów RAM przy starcie.
  2. Wewnętrzny dashboard zespołu na serwerze. Uruchamiając obraz Docker w zamkniętej sieci, dajesz analitykom i deweloperom dostęp do baz danych przez ujednolicony interfejs webowy bez konieczności konfigurowania tuneli SSH i lokalnych narzędzi przez każdą osobę.

Dla kogo to jest

Jeśli masz dość wolnego uruchamiania ciężkich klientów Java lub przełączania się między osobnymi programami do Redis i PostgreSQL, DbGate zdecydowanie warto sprawdzić. Projekt jest aktywnie rozwijany, dystrybuowany na wolnej licencji i dostępny zarówno w wersji desktopowej, jak i serwerowej.

Powiązane projekty