Laravel Truss es un paquete de Alberto Arena que dibuja la estructura de tu base de datos como un diagrama entidad-relación con zoom en el navegador. Solo lee la estructura — tablas, columnas, claves e índices — y nunca consulta los datos de las filas, por lo que no hace falta un cliente GUI externo ni regenerar un diagrama estático tras cada migración. El renderizado usa recursos de Mermaid incluidos en el paquete.
Al visitar /truss se abre un lienzo tipo mapa que se puede desplazar y ampliar. Al hacer clic en una tabla se activa el Focus Mode, que resalta esa tabla y sus vecinas por clave foránea atenuando el resto; un control Depth amplía ese anillo paso a paso. Las tablas se pueden filtrar por nombre, alternar las etiquetas de columnas entre tipos SQL nativos y tipos Laravel, y elegir entre temas claro y oscuro. Varias conexiones se configuran en config/truss.php con los nombres de config/database.php, cada una con excluded_tables opcional; un selector en la barra de herramientas cambia de conexión, re-renderiza el esquema y mantiene la selección en la URL. Cada conexión se inspecciona contra su propia base, sin fugas entre esquemas. Como las fuentes y bibliotecas se distribuyen con el paquete, el panel funciona sin conexión y bajo reglas estrictas de Content Security Policy.
Para el seguimiento de migraciones, Truss guarda una instantánea estructural tras ejecutarlas y la compara con la base actual: tablas añadidas o eliminadas, cambios de tipos de columna, ajustes de índices y de claves foráneas aparecen en un panel «Changes» y mediante php artisan truss:diff. El Schema Doctor ejecuta comprobaciones deterministas que señalan tablas sin clave primaria, columnas de clave foránea sin índice, índices duplicados y tipos de datos arriesgados — en un panel «Health» o con php artisan truss:doctor, utilizable en pipelines de CI.
Las exportaciones cubren el diagrama en PNG o SVG desde el navegador, y la estructura en DBML, JSON, CSV, Mermaid o diccionario de datos en Markdown, desde el panel o con php artisan truss:export --format=dbml --output=docs/schema.dbml. Cada tabla puede aislarse, copiarse o descargarse en JSON, CSV o Markdown. La salida es determinista; un flag --check regenera la exportación y hace fallar la CI si difiere del archivo versionado.
Truss requiere PHP 8.3+ y Laravel 12+. Se instala con composer require albertoarena/laravel-truss --dev para desarrollo local; la ruta /truss solo está activa en entorno local por defecto, pero puede habilitarse en staging o producción tras una puerta de autorización si se instala como dependencia normal. Documentación en trussphp.com y GitHub.
Comentarios
Aún no hay comentarios — escribe el primero.
Inicia la conversación
Sin cuenta ni contraseña — introduce tu correo y te enviamos un enlace de acceso de un solo uso. ¿Primera vez? Todo se configura automáticamente.
Tu valoración se aplicará automáticamente al iniciar sesión.
Revisa tu bandeja de entrada
Hemos enviado un enlace de acceso a …. Ábrelo en este dispositivo — esta pestaña te conectará automáticamente.
¿No llega nada? Mira en la carpeta de spam — y marca el correo como «No es spam» para que la próxima vez llegue directo.