Laravel Truss est un package d'Alberto Arena qui dessine la structure de votre base de données sous forme de diagramme entité-relation navigable dans le navigateur. Il ne lit que la structure — tables, colonnes, clés et index — sans jamais interroger les données, ce qui évite de brancher un client GUI externe ou de régénérer un diagramme statique après chaque migration. Le rendu s'appuie sur des assets Mermaid fournis avec le package.
La route /truss ouvre un canvas de type carte que l'on peut déplacer et zoomer. Cliquer sur une table active le Focus Mode, qui met en évidence la table et ses voisines par clé étrangère tout en estompant le reste ; un contrôle Depth élargit ce cercle d'un niveau à la fois. Les tables sont filtrables par nom, les libellés de colonnes basculent entre types SQL natifs et types Laravel, et deux thèmes (clair et sombre) sont disponibles. Plusieurs connexions se configurent dans config/truss.php avec les noms de config/database.php, chacune pouvant exclure ses propres tables via excluded_tables ; un sélecteur dans la barre d'outils permet alors de changer de connexion, en re-rendant le schéma et en conservant le choix dans l'URL. Chaque connexion est introspectée sur sa propre base, sans fuite entre schémas. Polices et bibliothèques étant embarquées, le tableau de bord fonctionne hors ligne et sous Content Security Policy stricte.
Pour le suivi des migrations, Truss met en cache un instantané structurel après leur exécution et le compare à la base courante : tables ajoutées ou supprimées, types de colonnes modifiés, ajustements d'index et de clés étrangères apparaissent dans un panneau « Changes » et via php artisan truss:diff. Le Schema Doctor effectue des vérifications déterministes signalant les tables sans clé primaire, les colonnes de clé étrangère non indexées, les index en double et les types de données risqués — dans un panneau « Health » ou via php artisan truss:doctor, utilisable en CI.
Les exports couvrent le diagramme en PNG ou SVG depuis le navigateur, et la structure en DBML, JSON, CSV, Mermaid ou dictionnaire de données Markdown, depuis le tableau de bord ou avec php artisan truss:export --format=dbml --output=docs/schema.dbml. Chaque table peut être isolée, copiée ou téléchargée en JSON, CSV ou Markdown. La sortie est déterministe ; un flag --check régénère l'export et fait échouer la CI s'il diffère du fichier commité.
Truss exige PHP 8.3+ et Laravel 12+. Installation via composer require albertoarena/laravel-truss --dev en local ; la route /truss n'est active qu'en environnement local par défaut, mais peut être activée en staging ou production derrière un contrôle d'accès si le package est installé en dépendance normale. Documentation sur trussphp.com et GitHub.
Commentaires
Pas encore de commentaire — écris le premier.
Lance la discussion
Pas de compte ni de mot de passe — saisis simplement ton adresse e-mail et nous t’envoyons un lien de connexion à usage unique. Première visite ? Tout se met en place automatiquement.
Ton évaluation sera appliquée automatiquement après ta connexion.
Vérifie ta boîte mail
Nous avons envoyé un lien de connexion à …. Ouvre-le sur cet appareil — cet onglet te connectera automatiquement.
Rien reçu ? Vérifiez le dossier spam — et marquez le message « Non spam » pour qu'il arrive directement la prochaine fois.