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
El service provider lo detecta automáticamente. No hace falta publicar nada para empezar.

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
El comando "truss:doctor" es especialmente útil en CI: puede fallar el build si detecta problemas graves.

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
Desde ahí se puede:
  • Definir varias conexiones
  • Excluir tablas
  • Personalizar el comportamiento del Schema Doctor
  • Configurar temas
  • Controlar la autorización
Para entornos no locales se debe habilitar explícitamente Truss y definir un gate de autorización, "viewTruss".