DBML to Laravel CLI
Artisan-команды для Laravel: из схемы DBML создают модели Eloquent и миграции, а правки схемы переносят в новые миграции
- 75 ★ репозитория
- Последний коммит
Расширенный доступ
Почему такой уровень
- Команды `dbml:generate` и `dbml:sync` создают и правят файлы моделей и миграций в проекте
- Миграции, созданные из схемы, меняют структуру базы при запуске `php artisan migrate`
Установка
- Работает в
Ручная установка
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` копирует шаблоны моделей и миграций в проект, и их можно править под свой стиль.
Обсуждение
Вопросов и отзывов пока нет.
Похожие
CLI-инструментыОфициальный MCP-сервер, гайдлайны и скиллы Laravel: агент видит схему БД, логи и версии пакетов и ищет по документации экосистемы
Anthropic Laravel подключает Claude API к Laravel через фасад и дает скилл Laravel Boost, чтобы агент писал код под пакет
Архитектура Laravel API
Laravel API Production-Ready Architecture Skill
Скилл, который удерживает агента в слоистой архитектуре Laravel API: JSON:API v1.1, строгие типы, PHPStan level 8 и тесты
Пакет для Laravel и Lumen, который добавляет MCP-эндпоинт в маршруты приложения и подключает к нему ваши инструменты
Скиллы для Laravel Boost и пакет Neuron AI: агент пишет на PHP ИИ-агентов, память чата, оценку и интеграцию с фронтендом
Четыре скилла со стандартами Spatie для Laravel, PHP, JavaScript, git и безопасности, ставятся через Laravel Boost или skills.sh
Сравнение с похожими
Карточки с тем же главным запросом: чем они отличаются.
| Инструмент | Официальный | Авторизация | Звезды репозитория | Главное отличие |
|---|---|---|---|---|
| DBML to Laravel (эта карточка) | нет | 75 | ||
| Laravel Boost | да | не нужна | 3 688 | официальный MCP-сервер и скиллы Laravel, без генерации кода из схемы |
| Laravel Agent Skills | да | 737 | официальная коллекция скиллов Laravel |
Коротко о README
README начинается с быстрого старта из трех команд, затем объясняет, когда пакет нужен, и перечисляет возможности и ограничения. Дальше идут установка, пример схемы DBML, генерация, синхронизация и раздел по работе с ИИ-агентами.