Laravel Schema Sentinel: як виявляти та виправляти дрейф схеми бази даних

Перекладено ШІ 0 Laravel News 02 травня, 2026

Ваша база даних більше не відповідає міграціям? Laravel Schema Sentinel автоматично виявить усі розбіжності та допоможе миттєво згенерувати необхідні виправлення.

Laravel Schema Sentinel від розробника Ahtesham (Broadway Web Service) допомагає виявити schema drift — розбіжності між реальною структурою бази даних та вашими migrations. Пакет створює «тіньову» базу на основі міграцій, порівнює її з робочою схемою і генерує виправлення, якщо вони не збігаються.

  • Глибоке виявлення розбіжностей — аудит таблиць, колонок, типів даних, nullability, дефолтних значень, індексів та foreign keys.
  • Порівняння середовищ — перевірка відповідності локальних міграцій версіям на staging або production.
  • Автогенерація міграцій — створення виправлень з можливістю інтерактивного перегляду.
  • Візуальна панель — вбудований Livewire-компонент для моніторингу стану бази даних.
  • Захист перед міграцією — автоматичне блокування php artisan migrate у разі виявлення drift.
  • Та багато іншого...

# Виявлення розбіжностей

Основна команда запускає міграції у тимчасовій shadow database, а потім порівнює її з поточним з'єднанням:

php artisan schema:drift

Інструмент перевіряє ключові параметри схеми. Прапор --strict додатково підсвічує колонки або таблиці, які існують у реальній базі, але відсутні в migrations.

# Генерація виправлень

Якщо розбіжності знайдено, Sentinel може автоматично створити міграцію для їх усунення:

php artisan schema:drift --fix --interactive

Інтерактивний режим дозволяє підтвердити кожну зміну перед записом файлу. Прапор --sql виводить готовий код міграції прямо в термінал для попереднього перегляду.

# Порівняння між середовищами

Ви можете порівняти схеми з іншим оточенням замість локального:

php artisan schema:drift --compare-env=staging

Команда використовує налаштування з config/database.php. Це дозволяє переконатися, що ваші локальні міграції відповідають стану бази на staging або production перед деплоєм.

# Programmatic API

Facade Sentinel надає доступ до результатів порівняння у форматі DTO, що зручно для використання в контролерах, Livewire-компонентах або адмін-панелях:

use Sentinel\SchemaSentinel\Facades\Sentinel;
 
$diff = Sentinel::check(strict: true);
 
return response()->json([
    'in_sync' => !$diff->hasDifferences(),
    'drift'   => $diff->toArray(),
]);

Пакет також містить готовий Blade-компонент для візуалізації здоров'я бази даних (працює лише у local середовищі):

<livewire:sentinel-database-health />

Інструмент підтримує Laravel версій 11.x–13.x. Сирцевий код Laravel Schema Sentinel доступний на GitHub.

Популярні

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

10 Оновлено 01 травня, 2026

Управління доступом у Filament за допомогою плагіна Shield

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

17 Оновлено 01 травня, 2026

Оптимізація запитів до бази даних за допомогою скорочених методів Laravel

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

16 Оновлено 01 травня, 2026

Налаштування Xdebug з Docker та PHP 8.4 всього за одну хвилину

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