Laravel Truss ist ein Paket von Alberto Arena, das die Datenbankstruktur als zoombares Entity-Relationship-Diagramm im Browser darstellt. Es liest ausschließlich die Struktur — Tabellen, Spalten, Schlüssel und Indizes — und fragt niemals Zeilendaten ab. Ein externes GUI-Tool oder das Neuerzeugen statischer Diagramme nach jeder Migration entfällt. Gerendert wird mit im Paket enthaltenen Mermaid-Assets.

Unter /truss öffnet sich eine kartenartige Arbeitsfläche zum Schwenken und Zoomen. Ein Klick auf eine Tabelle aktiviert den Focus Mode, der die Tabelle samt ihrer Foreign-Key-Nachbarn hervorhebt und alles andere abdunkelt; ein Depth-Regler erweitert den Ring schrittweise. Tabellen lassen sich nach Namen filtern, Spaltenbeschriftungen zwischen nativen SQL-Typen und Laravel-Typen umschalten, ebenso helle und dunkle Blueprint-Themes. Mehrere Datenbankverbindungen werden in config/truss.php mit den Verbindungsnamen aus config/database.php konfiguriert, jeweils optional mit excluded_tables; ein Picker in der Toolbar wechselt dann die Verbindung, rendert das Schema neu und hält die Auswahl in der URL. Jede Verbindung wird gegen ihre eigene Datenbank introspektiert, sodass nichts zwischen Schemata überläuft. Da Schriften und Bibliotheken mitgeliefert werden, funktioniert das Dashboard offline und unter strikten Content-Security-Policy-Regeln.

Zur Migrationsverfolgung speichert Truss nach dem Lauf der Migrationen einen Struktur-Snapshot und vergleicht die aktuelle Datenbank damit. Hinzugefügte oder gelöschte Tabellen, geänderte Spaltentypen, Index-Anpassungen und Foreign-Key-Updates erscheinen im „Changes"-Panel und über php artisan truss:diff. Der Schema Doctor führt deterministische Prüfungen durch und meldet Tabellen ohne Primärschlüssel, nicht indizierte Foreign-Key-Spalten, doppelte Indizes und riskante Datentypen — sichtbar im „Health"-Panel oder per php artisan truss:doctor, auch in CI-Pipelines einsetzbar.

Exportiert werden das Diagramm als PNG oder SVG aus dem Browser sowie die Struktur als DBML, JSON, CSV, Mermaid oder Markdown-Datenwörterbuch — aus dem Dashboard oder per php artisan truss:export --format=dbml --output=docs/schema.dbml. Einzelne Tabellen lassen sich fokussieren, kopieren oder als JSON, CSV oder Markdown herunterladen. Die Ausgabe ist deterministisch; ein --check-Flag erzeugt den Export neu und lässt CI fehlschlagen, wenn er von der gecommitteten Datei abweicht.

Truss setzt PHP 8.3+ und Laravel 12+ voraus. Installation per composer require albertoarena/laravel-truss --dev für die lokale Entwicklung; die Route /truss ist standardmäßig nur lokal aktiv, kann aber bei regulärer Installation hinter einem Autorisierungs-Gate auch in Staging oder Produktion genutzt werden. Dokumentation gibt es auf trussphp.com und GitHub.