>_ DevTrendses

Idioma

Inicio

Lenguajes

Secciones

Frontend Backend Móvil DevOps AI / ML GameDev Blockchain Embebidos Seguridad
JavaScript

DbGate: Un cliente de base de datos universal para web y escritorio

Por lo general, un stack backend moderno no se limita a un solo SGBD. Un proyecto puede tener fácilmente PostgreSQL para el modelo relacional principal, Redis para caché y sesiones, ClickHouse para logs analíticos y MongoDB para documentos no estructurados. En esta situación, abrir cuatro clientes pesados diferentes o mantener múltiples pestañas de DBeaver abiertas es un placer dudoso.

Hace poco me encontré con DbGate. Es un proyecto con licencia GPL-3.0 que busca resolver el problema del zoo de bases de datos con un enfoque unificado. Lo más interesante es que el cliente funciona igual de bien como aplicación de escritorio en Electron y como interfaz web ligera en un contenedor Docker.

Qué puede hacer el proyecto

DbGate soporta tanto fuentes de datos SQL como NoSQL. La lista de compatibilidad incluye Postgres, MySQL, SQLite, SQL Server, Oracle, MariaDB, ClickHouse, DuckDB, CockroachDB, Firebird, Cassandra, MongoDB y Redis.

La herramienta maneja la administración rutinaria de datos y ofrece varias funcionalidades no estándar:

  • Navegación a través de relaciones de clave foránea. En la vista de tabla, puedes expandir registros hijos de una tabla relacionada directamente desde una fila (Master/Detail) o extraer columnas mediante clave foránea sin escribir JOINs manualmente.
  • Ver y editar datos con generación de script de cambios. Haces clic en las celdas, editas los valores y antes de enviar a la base de datos, puedes revisar el parche SQL generado.
  • Constructor visual de consultas. Te ayuda a bocetar la estructura de una consulta con el ratón si eres demasiado perezoso para escribir expresiones largas a mano, incluyendo selecciones con WHERE NOT EXISTS.
  • Visor integrado para archivos NDJSON, JSON, CSV y Excel. Los archivos NDJSON grandes incluso pueden abrirse y editarse directamente en disco sin necesidad de importarlos previamente.
  • Diagramas ER y comparación de esquemas con generación de sincronización de migraciones.
  • Visualización de datos en mapas para columnas GEO y creación de gráficos simples con exportación HTML.

Cómo funciona la arquitectura

Debajo del capó, el proyecto utiliza una pila muy práctica:

  • El frontend está escrito en Svelte. La interfaz responde rápidamente, no está saturada de nodos DOM innecesarios y renderiza tablas virtualizadas grandes con fluidez.
  • El backend se ejecuta en Node.js y Express, utilizando conectores de base de datos estándar.
  • La versión de escritorio envuelve todo en Electron para Windows, Linux y macOS.

La modularidad es interesante. Muchas utilidades están divididas en paquetes NPM separados. Por ejemplo, si necesitas un pipeline para exportación programada de datos CSV, los scripts de Node.js pueden ejecutarse de forma autónoma en un servidor sin interfaz gráfica.

Además, se ha implementado un sistema de plugins. Escribiendo un pequeño módulo en TypeScript o JavaScript, puedes conectar un driver personalizado o añadir un parser para un formato de archivo poco común.

Inicio rápido

Si quieres probar el cliente sin instalarlo en tu máquina, la forma más sencilla es levantar la versión web en Docker:

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

Después de eso, abre http://localhost:3000 en tu navegador y conéctate a bases de datos locales o remotas.

Para quienes quieran compilar el proyecto localmente y profundizar en el código fuente:

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

El comando iniciará el backend en el puerto 3000 y la interfaz web en el puerto 5001.

Casos de uso

En la práctica, DbGate cubre excelentemente dos tareas:

  1. Herramienta de desarrollo personal. Reemplaza la combinación de DBeaver, RedisInsight y MongoDB Compass sin devorar gigabytes de RAM al iniciar.
  2. Panel de equipo interno en un servidor. Al levantar la imagen Docker dentro de una red cerrada, das a analistas y desarrolladores acceso a las bases de datos a través de una interfaz web unificada sin que cada persona necesite configurar túneles SSH y utilidades locales.

Para quién es

Si estás cansado de los lentos tiempos de inicio de clientes Java pesados o de cambiar entre programas separados para Redis y PostgreSQL, DbGate definitivamente vale la pena probarlo. El proyecto se desarrolla activamente, se distribuye bajo una licencia libre y está disponible en variantes de escritorio y servidor.

Proyectos relacionados