DBML to Laravel CLI

Artisan-команды для Laravel: из схемы DBML создают модели Eloquent и миграции, а правки схемы переносят в новые миграции

  • 75 ★ репозитория
  • Последний коммит
CLI

Расширенный доступ

Почему такой уровень

  • Команды `dbml:generate` и `dbml:sync` создают и правят файлы моделей и миграций в проекте
  • Миграции, созданные из схемы, меняют структуру базы при запуске `php artisan migrate`
Все причины и проверки

egyjs/dbml-to-laravel

Установка

Ручная установка

composer require egyjs/dbml-to-laravel --dev

Затем `php artisan dbml:generate database/schema.dbml`. Скилл для Laravel Boost подключает `php artisan boost:install`.

Доступ и проверки

Как мы проверяем

Расширенный доступИнструмент запускает код или ходит в сеть, а внешние данные только читает.

  • Команды `dbml:generate` и `dbml:sync` создают и правят файлы моделей и миграций в проекте
  • Миграции, созданные из схемы, меняют структуру базы при запуске `php artisan migrate`

Это чужой код. Посмотрите файлы в репозитории перед установкой.

Что делает

DBML to Laravel — Composer-пакет, который читает схему на DBML, в том числе из dbdiagram.io, и создает код слоя данных Laravel. Команда `php artisan dbml:generate database/schema.dbml` пишет модели с `$fillable`, `$casts` и связями `belongsTo` и `hasMany`, а также миграции с типами столбцов, значениями по умолчанию, ограничениями `unique`, индексами, внешними ключами и перечислениями. При первом запуске пакет сохраняет снимок схемы. После правки схемы `php artisan dbml:sync database/schema.dbml --force` сравнивает файл со снимком, создает миграции на добавление, изменение и удаление и правит модели только внутри маркеров `@dbml-sync`. Остальной код модели остается вашим. Для агентов предусмотрен отдельный режим: флаг `--force` исключает вопросы, `--dry-run` показывает файлы без записи, `--json` печатает отчет с полями `success`, `written`, `skipped` и `errors`, а код выхода 1 сообщает об ошибке. Вместе с пакетом идут рекомендации и скилл для Laravel Boost в `resources/boost/`, их подключает `php artisan boost:install`.

Для кого. Разработчикам на Laravel, которые ведут схему базы в одном файле DBML и хотят отдавать правки схемы агенту без ручных миграций.

Подходит, если

  • Схема нарисована в dbdiagram.io, и по ней надо получить модели и миграции нового приложения
  • Агент должен менять базу, правя один файл `database/schema.dbml` и запуская `dbml:sync`
  • Нужен предпросмотр: какие файлы будут записаны, без изменений на диске
  • После правки схемы нужны инкрементальные миграции без пересоздания таблиц

Не подходит, если

  • Нужно восстановить DBML из существующей базы: пакет работает только от DBML к коду
  • Нужны контроллеры, фабрики или сидеры: их пакет не создает
  • В схеме много связей один к одному и многие ко многим: такие связи пакет пропускает

Пример запроса к агенту

Добавь в схему DBML таблицу comments со ссылкой на posts, сначала покажи dry-run, затем примени dbml:sync и верни JSON-отчет

Ограничения

Учитываются только связи многие к одному и один ко многим (знаки `>` и `<`), а связи один к одному и многие ко многим игнорируются: внешних ключей, `hasOne`, промежуточных таблиц и `belongsToMany` по ним не будет. Поле `$hidden`, фабрики и сидеры в код не попадают. Столбцы без `not null` получают `->nullable()`. Без флага `--force` команда `dbml:sync` в оболочке без терминала завершается кодом 1. Инкрементальные миграции опираются на снимок схемы, поэтому его нельзя удалять между запусками.

Как отключить. Удалите пакет командой `composer remove egyjs/dbml-to-laravel --dev`. Уже созданные модели и миграции остаются в проекте, маркеры `@dbml-sync` в моделях можно стереть вручную.

Частые вопросы

Как подготовить первую генерацию?

Положите схему в `database/schema.dbml` и выполните `php artisan dbml:generate database/schema.dbml`. Команда создаст модели, миграции и снимок схемы для последующей синхронизации.

Чем dbml:sync отличается от dbml:generate?

`dbml:generate` создает код по схеме с нуля, `dbml:sync` сравнивает схему со снимком и выпускает только миграции для изменений, а модели правит внутри маркеров `@dbml-sync`.

Что печатает флаг --json?

Один JSON-отчет: `success`, `dry_run`, список `written`, список `skipped` с причинами и сообщения `errors`. Код выхода 0 означает успех, 1 любую ошибку.

Как подключить скилл для агента?

Пакет приносит рекомендации и скилл для Laravel Boost в `resources/boost/`. Подключают их командой `php artisan boost:install` или `boost:update`.

Можно ли поменять шаблоны кода?

Да, `php artisan vendor:publish --tag=dbml-to-laravel-stubs` копирует шаблоны моделей и миграций в проект, и их можно править под свой стиль.

Обсуждение

Вопросов и отзывов пока нет.

Официальный

Официальный MCP-сервер, гайдлайны и скиллы Laravel: агент видит схему БД, логи и версии пакетов и ищет по документации экосистемы

MCP-серверРасширенный доступ3,7 тыс.Звезды репозитория
Нужен VPN

Anthropic Laravel подключает Claude API к Laravel через фасад и дает скилл Laravel Boost, чтобы агент писал код под пакет

СкиллРасширенный доступ74Звезды репозитория

Архитектура Laravel API

Laravel API Production-Ready Architecture Skill

Скилл, который удерживает агента в слоистой архитектуре Laravel API: JSON:API v1.1, строгие типы, PHPStan level 8 и тесты

СкиллМинимальный доступ22Звезды репозитория

Пакет для Laravel и Lumen, который добавляет MCP-эндпоинт в маршруты приложения и подключает к нему ваши инструменты

MCP-серверРасширенный доступ331Звезды репозитория

Скиллы для Laravel Boost и пакет Neuron AI: агент пишет на PHP ИИ-агентов, память чата, оценку и интеграцию с фронтендом

СкиллРасширенный доступ123Звезды репозитория
Официальный

Четыре скилла со стандартами Spatie для Laravel, PHP, JavaScript, git и безопасности, ставятся через Laravel Boost или skills.sh

СкиллМинимальный доступ99Звезды репозитория

Сравнение с похожими

Карточки с тем же главным запросом: чем они отличаются.

ИнструментОфициальныйАвторизацияЗвезды репозиторияГлавное отличие
DBML to Laravel (эта карточка)нет75
Laravel Boostдане нужна3 688официальный MCP-сервер и скиллы Laravel, без генерации кода из схемы
Laravel Agent Skillsда737официальная коллекция скиллов Laravel

Коротко о README

README начинается с быстрого старта из трех команд, затем объясняет, когда пакет нужен, и перечисляет возможности и ограничения. Дальше идут установка, пример схемы DBML, генерация, синхронизация и раздел по работе с ИИ-агентами.

Бейдж для README

Сообщить о проблеме