LARAVEL TRUSS: VISUALIZA EL ESQUEMA DE UNA BASE DE DATOS EN TIEMPO REAL
Laravel Truss es un paquete que permite visualizar la estructura real de la base de datos como un diagrama entidad-relación interactivo, desplazable y con zoom, directamente desde el navegador dentro de la aplicación Laravel.Solo lee la estructura, tablas, columnas, claves primarias, índices y relaciones. Nunca consulta ni expone datos de filas.
Características principales
- Diagrama ER en vivo renderizado con Mermaid, incluido en el paquete, sin CDNs.
- Modo Focus: selecciona una tabla y resalta solo sus vecinos relacionados por claves foráneas.
- Pan y zoom estilo mapa, con botón “Fit” para ajustar la vista.
- Filtro por nombre de tabla y cambio entre tipos nativos de SQL y etiquetas estilo Laravel.
- Schema Diff: muestra qué tablas, columnas, índices o foreign keys se han añadido, eliminado o modificado desde la última migración.
- Schema Doctor: detecta problemas de diseño, tablas sin primary key, foreign keys sin índice, índices duplicados, tipos de datos peligrosos, etc..
- Soporte multi-conexión: puedes visualizar varias conexiones de base de datos y cambiar entre ellas desde la barra de herramientas.
- Exportaciones:Diagrama:
- PNG o SVG
- Estructura: DBML, JSON, CSV, Markdown, diccionario de datos, Mermaid o formato optimizado para LLMs
- Temas claro y oscuro estilo “blueprint”, además de personalización de colores.
- Completamente offline y compatible con políticas CSP estrictas.
Requisitos
- PHP 8.2+, se recomienda 8.3+
- Laravel 12+
Instalación
composer require albertoarena/laravel-truss
Uso básico
- Arrancar la aplicación.
- Ir la ruta "/truss", solo está habilitada por defecto en el entorno local.
Comandos Artisan útiles
# Ver el estado del esquema
php artisan truss:doctor
# Ver los cambios desde la última migración
php artisan truss:diff
# Exportar el esquema
php artisan truss:export --format=dbml --output=docs/schema.dbml
php artisan truss:export --format=llm # formato optimizado para agentes de IA
php artisan truss:export --format=json
Configuración avanzada
Se puede copiar el archivo de configuración del paquete Laravel Truss al proyecto para poder modificarlo acorde a lase necesidades del proyecto:php artisan vendor:publish --tag=truss-config
- Definir varias conexiones
- Excluir tablas
- Personalizar el comportamiento del Schema Doctor
- Configurar temas
- Controlar la autorización