Laravel Truss: інтерактивні ER-діаграми баз даних у реальному часі.

Перекладено ШІ 0 Laravel News 11 серпня, 2026

Laravel Truss візуалізує структуру вашої бази даних у вигляді інтерактивної карти, дозволяючи досліджувати таблиці та зв’язки прямо в браузері. Пакет автоматично відстежує зміни після міграцій та знаходить помилки в архітектурі за допомогою розумної системи діагностики.

Alberto Arena презентував пакет Laravel Truss, який візуалізує структуру вашої бази даних у вигляді інтерактивної ER-діаграми прямо в браузері. Інструмент аналізує лише метадані — таблиці, колонки, ключі та індекси — і не звертається до самих даних. Це дозволяє миттєво бачити актуальну схему без сторонніх GUI-клієнтів або ручного оновлення статичних діаграм після кожної міграції.

Основні можливості:

  • Живі ER-діаграми: візуалізація таблиць, колонок та зв'язків за допомогою вбудованих активів Mermaid.
  • Режим фокусування (Focus mode): ізолює обрану таблицю та її найближчі зв'язки за foreign keys.
  • Diff-аналіз схеми: відстежує додані, видалені або змінені елементи структури з моменту останньої міграції.
  • Schema doctor: автоматично шукає відсутні первинні ключі, неіндексовані зовнішні ключі, дублікати індексів та ризиковані типи даних.
  • Підтримка Multi-connection: зручне перемикання між різними підключеннями до баз даних безпосередньо з інтерфейсу.
  • Експорт: збереження діаграм у PNG чи SVG, а структури — у форматах DBML, JSON, CSV, Mermaid або Markdown (як дата-словник).
  • Автономність та безпека: пакет містить усі необхідні шрифти та бібліотеки Mermaid, тому працює без доступу до CDN і сумісний із суворими правилами CSP.

# Інтерактивна панель ER-діаграм

За адресою /truss доступне полотно, де можна вільно переміщуватися та масштабувати схему. Клік на таблицю активує Focus Mode — вона та її «сусідні» таблиці підсвічуються, а решта схеми затінюється.

При фокусуванні на таблиці posts вона центрується разом із чотирма пов'язаними таблицями. Параметр Depth дозволяє крок за кроком розширювати цей радіус перегляду.

Користувачі можуть фільтрувати таблиці за назвою, перемикатися між типами SQL та лейблами у стилі Laravel, а також обирати світлу або темну тему оформлення. Якщо застосунок працює з кількома базами, їх можна зареєструвати у config/truss.php, використовуючи назви підключень із config/database.php:

// config/truss.php
'connections' => [
    'pgsql' => [],
    'analytics' => ['excluded_tables' => ['page_views', 'raw_events']],
],

Коли налаштовано два або більше підключень, на панелі з'являється перемикач. Обране з'єднання зберігається в URL, що дозволяє ділитися прямими посиланнями на конкретні схеми. Truss аналізує кожне підключення окремо, тому дані з різних схем не змішуються.

# Відстеження змін у схемі

Truss кешує структурний знімок після виконання міграцій і порівнює його з поточним станом бази. Результати аналізу доступні у панелі «Changes» або через Artisan-команду:

php artisan truss:diff

Цей інструмент фіксує будь-які зміни: від нових таблиць до коригувань індексів чи типів колонок, не зачіпаючи при цьому записи в таблицях.

# Діагностика Schema Doctor

Schema Doctor проводить детерміновану перевірку структури та сигналізує про:

  • таблиці без первинних ключів;
  • зовнішні ключі без відповідних індексів;
  • дублікати або надлишкові індекси;
  • невдалий вибір типів даних.

Звіт відображається в розділі «Health» або в терміналі для використання у CI-пайплайнах:

php artisan truss:doctor

# Експорт та робота в консолі

Truss дозволяє експортувати як візуальну частину (PNG, SVG), так і технічний опис (DBML, JSON, CSV, Mermaid, Markdown). Це корисно для документації або швидкого обміну структурою окремої таблиці. Аналогічні можливості доступні і через CLI:

php artisan truss:export --format=dbml --output=docs/schema.dbml

Вивід є детермінованим — однакова схема завжди генерує ідентичний файл, незалежно від порядку таблиць у базі. Завдяки прапору --check ви можете налаштувати перевірку в CI: якщо міграція змінила схему, але файл документації не був оновлений, збірка завершиться з помилкою.

# Встановлення та налаштування

Для роботи потрібні PHP 8.3+ та Laravel 12+. Для локальної розробки встановіть пакет як dev-залежність:

composer require albertoarena/laravel-truss --dev

За замовчуванням маршрут /truss доступний лише в середовищі local. Для використання на staging або production встановіть пакет як звичайну залежність і налаштуйте права доступу через шлюзи авторизації.

Детальніше про кастомні теми та параметри CLI читайте в репозиторії Laravel Truss або на офіційному сайті документації.

Популярні

Інше, що варто прочитати

14 Оновлено 25 червня, 2025

Отримання параметрів команди в Laravel Artisan

Laravel спрощує доступ до аргументів та опцій у ваших кастомних командах Artisan, дозволяючи легко отримувати та валідувати параметри. Дізнайтеся, як ці вбудовані допоміжні методи можуть покращити ваш процес розробки!

42 Оновлено 26 червня, 2026

Що нового в PHP 8.5

PHP 8.5 обіцяє безліч нових можливостей, таких як оператор Pipe, функції `array_first()` та `array_last()`, а також нове розширення URI. Чи готові ви дізнатися, як ці функції можуть спростити вашу розробку? Читайте далі, щоб дізнатися більше про ці захоплюючі нововведення

27 Оновлено 26 червня, 2026

"SQLSTATE[HY000] [2002] Connection refused" у Laravel в GitHub Actions

Чи стикалися ви з помилкою «SQLSTATE[HY000] [2002] Connection refused» під час налаштування GitHub Actions для вашого додатку на Laravel? У нашій статті ми розглянемо три поширені причини цієї помилки та надамо рішення для їх усунення. Читайте далі, щоб дізнатися, як ваш CI/CD потік може працювати бездоганно!