DESARROLLADO EN RUST • CERO AGENTES EN RUNTIME • INTROSPECCIÓN ESTÁTICA DGI

Transforma Cualquier Base de Datos Relacional en un Grafo de Conocimiento

dgi se conecta a su base de datos, recorre todo el esquema y produce un grafo enriquecido donde cada tabla, columna, índice, clave foránea, vista y procedimiento almacenado se convierte en un nodo — y cada relación estructural o lógica en una arista dirigida tipada. En un solo comando.

Ver Código en GitHub →
dgi --config production.toml

Parsing Estático de Código SQL

Deduce aristas implícitas DEPENDS_ON analizando vistas y procedimientos almacenados sin ejecutar código SQL ni impactar el rendimiento.

Conectores Nativos Multi-Motor

Drivers de alta velocidad para PostgreSQL 13+, MySQL 8+, MariaDB 10.6+ y Microsoft SQL Server 2019+ con tests de integración automatizados.

4 Formatos de Exportación

Exporta a HTML interactivo autónomo, GraphML para Gephi/Cytoscape, JSON estructurado para diffs de entornos o importación directa a Neo4j via Bolt.

EL PROBLEMA

Las Bases de Datos Relacionales Crecen y Nadie Sabe Qué las Usa

Tras años en producción, las bases de datos que nadie entiende del todo son las que todos temen tocar. Las claves foráneas cuentan parte de la historia, pero las vistas y procedimientos crean dependencias invisibles en el cuerpo SQL.

Las columnas quedan obsoletas pero nunca se eliminan por temor a romper reportes o servicios. Las migraciones se retrasan por falta de visibilidad de impacto. Los diagramas ER quedan desactualizados en un solo sprint.

dgi fue construido para resolver esto. Lee la base de datos directamente — sin anotaciones manuales ni metadatos de ORM — haciendo que su capa de datos sea visible y consultable.

production.toml TOML
[connection]
driver   = "postgres" # postgres | mysql | mariadb | sqlserver
host     = "localhost"
port     = 5432
username = "miusuario"
password = "miclavesegura"
database = "mibase"

[export]
format   = "html"
output   = "./grafo.html"

# Ejecutar introspección:
# $ dgi --config production.toml
MODELO DE GRAFO

Objetos y Relaciones Capturadas

Cada objeto del esquema se convierte en un nodo. Cada relación estructural o lógica en una arista dirigida tipada.

Base de Datos └── Esquema ├── Tabla │ ├── Columna (tipo · nulo · PK · valor por defecto · precisión) │ ├── Índice (único / primario / compuesto · lista columnas) │ └── Clave Foránea (tabla referenciada · reglas ON DELETE / UPDATE) ├── Vista (definición SQL · aristas DEPENDS_ON deducidas del cuerpo) └── Procedimiento / Función (lenguaje · aristas DEPENDS_ON deducidas del cuerpo)
Tipo de Arista Nodo Origen Nodo Destino Técnica de Extracción
CONTAINS Database, Schema Table, View, Procedure Recorrido del catálogo de esquemas del motor
HAS_COLUMN Table Column Introspección del information schema de columnas
HAS_INDEX Table Index Parsing de índices simples, primarios y compuestos
REFERENCES Table Table Declaración explícita de Foreign Key Constraints
DEPENDS_ON View, Procedure Table Análisis estático de código SQL (Cero ejecución requerida)
CASOS DE USO

Cómo Usan dgi los Equipos de Ingeniería

1. Análisis de Impacto Previo a Migraciones

Antes de modificar una columna o borrar una tabla, ejecute consultas Cypher en Neo4j para listar al instante cada vista y procedimiento almacenado que depende de ella.

MATCH (n)-[:DEPENDS_ON]->(t:Table {name: "subscriptions"})
RETURN n

2. Auditoría de Esquema e Índices Faltantes

Identifique en segundos todas las tablas del esquema que carecen de índices secundarios o poseen FKs sin indexar mediante una sola consulta de grafo.

MATCH (t:Table)
WHERE NOT (t)-[:HAS_INDEX]->(:Index {is_primary: false})
RETURN t.name

3. Detección de Desviación entre Entornos

Exporta staging y producción a JSON y compara los grafos en tu pipeline CI para detectar hotfixes manuales, columnas desalineadas o índices no replicados.

4. Documentación Viva e Interactiva

Genera un archivo HTML autónomo con visor interactivo Cytoscape.js. Comparte mapas visuales de la arquitectura con equipos que no tienen acceso directo a la base de datos.

ESPECIFICACIONES

Diseñado en Rust para Máximo Rendimiento

  • Sin Pausas de Garbage Collection — Ejecución ultrarrápida en pipelines de CI y scripts de operaciones con mínimo consumo de RAM.
  • Drivers Nativos — Basado en sqlx (PostgreSQL, MySQL, MariaDB) y tiberius (SQL Server).
  • Grafo Interno en Memoria — Utiliza la librería de grafos de alto rendimiento petgraph de Rust.
  • Tests de Integración Reales — Probado contra instancias en contenedores Docker de PostgreSQL 13+, SQL Server 2019+, MySQL 8+ y Neo4j.

Motores de Base de Datos Soportados

Motor Versión Mínima Estado
PostgreSQL 13+ Producción
MySQL 8.0+ Producción
MariaDB Server 10.6+ Producción
Microsoft SQL Server 2019+ Producción
COMENZAR

Explore el Grafo de su Base de Datos Hoy Mismo

dgi está licenciado bajo Business Source License 1.1. Código abierto para evaluación y uso interno no comercial, convirtiéndose a Apache 2.0 en 2029-01-01. Contacte con nuestro equipo para licencias comerciales enterprise.

Descargar en GitHub → Contactar Ventas y Licencias