
Оновлення: Truss тепер має окремий сайт із документацією та публічний roadmap. Дивіться примітки наприкінці допису, щоб дізнатися про останні зміни.
Оновлення: У Truss 1.5 додано
truss:doctor— інструмент для детермінованого аналізу структури вашої schema за 13 правилами. Його можна запускати через термінал, CI або дашборд. Детальніше у дописі The schema doctor is in.
Ви долучаєтеся до проєкту. Сорок таблиць, половина без документації, а таблиця posts чомусь пов’язана з трьома іншими, про які ви ніколи не чули. З чого почати?
Команда php artisan db відкриває інтерактивну оболонку, і далі ви залишаєтеся сам на сам із діалектом вашої бази даних: .schema в SQLite, DESCRIBE у MySQL чи \d у Postgres. Стандартні команди Laravel db:show та db:table — це вже крок уперед: вони виводять у термінал огляд колонок, індексів та foreign keys. Проте вони все одно відображають лише одну таблицю за раз у текстовому форматі. Ніщо не дає цілісного уявлення про архітектуру: які таблиці насправді пов'язані і як саме це виглядає у масштабі всієї schema. Тож доводиться або відкривати DB-клієнт через SSH-тунель, або малювати діаграму на дошці з пам'яті, що зазвичай не дуже надійно.
І це ще легкий випадок. На staging або production, де візуалізація найпотрібніша (бо саме там реальна schema часто відхиляється від migrations), доступу до shell може взагалі не бути. Деякі організації повністю блокують SSH задля безпеки. Раніше я писав про використання AWS Systems Manager для запуску Artisan-команд у таких умовах, але навіть це дає вам лише консоль, а не наочну діаграму.
Саме тому я створив Truss.
Що він вміє
Truss — це інструмент для перегляду структури бази даних у реальному часі для Laravel. Він сканує вашу актуальну schema (а не файли migrations) і відтворює її як інтерактивну ER diagram прямо у вашому застосунку.
- Жива ER diagram: будується за допомогою Mermaid для кожної таблиці та її зв'язків.
- Режим фокусування (Focus mode): клікніть на таблицю, щоб ізолювати її та сусідні таблиці, пов’язані foreign-key. Це допомагає розібратися в одному вузлі, не відволікаючись на решту сорока таблиць.
- Фільтрація: пошук за назвою таблиці та можливість перемикатися між нативними типами колонок і мітками у стилі Laravel.
- Навігація як у мапах: панорамування, зум та автоматичне масштабування (auto-fit).
- Тільки структура: Truss читає лише таблиці, колонки, ключі та індекси. Він ніколи не робить запитів до самих даних (rows), що робить його безпечним для запуску на критично важливих середовищах.
- Автономність: Mermaid та шрифти вбудовані в пакет, тому він працює офлайн і сумісний із суворими правилами CSP. Жодних CDN чи зовнішніх запитів.
- Кешування та автоматизація: знімок структури оновлюється після виконання migrations, тому діаграма завжди актуальна.
- Експорт: ви можете завантажити всю діаграму у форматі PNG або SVG (з урахуванням фільтрів та фокусу) для документації чи PR. Також доступний експорт окремих таблиць у JSON/CSV, а всієї schema — у Markdown (data dictionary) або DBML.
Просто встановіть пакет і перейдіть за адресою /truss. Жодних конфігурацій чи окремих сервісів.
composer require albertoarena/laravel-truss
За замовчуванням інструмент увімкнений лише локально. Для використання на staging або production його потрібно активувати явно та налаштувати доступ через viewTruss gate. "Безпечно для продакшену" не означає "відкрито для всіх".
Робота через термінал
Команди db:show та db:table корисні, але обмежені. php artisan truss:show виводить той самий відфільтрований знімок структури, що і діаграма, але у вигляді таблиці в терміналі: один рядок на кожну таблицю БД із кількістю колонок та foreign keys. Ви бачите всю картину одразу.
php artisan truss:show # вся schema як таблиця у вашому терміналі
php artisan truss:open # миттєвий перехід до візуальної діаграми
Команда php artisan truss:open відкриває дашборд у браузері за замовчуванням, враховуючи налаштований префікс маршруту та URL застосунку. Навіть на headless-хостах без браузера команда виведе посилання, яке можна відкрити через прокинутий порт.
Усі команди використовують власний namespace truss: замість schema:. Це дозволяє уникнути конфліктів, якщо Laravel колись випустить власну команду schema:show (що є певним жартом у заголовку цього допису).
Спробувати без встановлення
Якщо ви хочете потестувати інструмент перед додаванням у проєкт, скористайтеся live demo. Там можна спробувати навігацію, фільтри та фокусування на прикладі фіктивної бази даних прямо у браузері.
Як це працює на практиці
Я інтегрував Truss у кілька власних Laravel-проєктів, до яких не торкався тривалий час. Це виявилося найшвидшим способом згадати структуру schema. Клікати по foreign keys у режимі фокусування значно ефективніше, ніж намагатися відтворити зв'язки за назвами файлів migrations.
З чого почати
У документації детально описано процес встановлення, швидкий старт та налаштування авторизації для віддалених серверів. Пакет потребує PHP 8.3+ та Laravel 12+. Також доступний публічний roadmap: наступною великою функцією стане schema diff для перегляду змін після останньої міграції.
Ваші відгуки, як завжди, вітаються.
Примітки
29 липня 2026 року Truss оновився до v1.3.1: додано експорт data dictionary та DBML. Тепер інспектування schema обмежене поточною базою даних з’єднання, тому на спільних серверах таблиці з інших БД більше не відображаються. Документація переїхала на окремий сайт trussphp.com.
31 липня 2026 року вийшла версія v1.5.0 із функцією truss:doctor. Це інструмент для автоматичної перевірки цілісності, індексів та типів вашої schema за 13 правилами. Перевірку можна запускати в терміналі, CI або через нову панель Health на дашборді. Подробиці у дописі The schema doctor is in.