Rowcast Schema

Schema-first библиотека миграций для PDO, дружественная к Rowcast.

CI codecov PHPStan Level 9 Latest Stable Version PHP Version License

Быстрый старт English


Что такое Rowcast Schema?

Rowcast Schema — это schema-first инструмент миграций для PHP 8.4+. Опишите структуру базы данных в PHP или YAML файле, сравните с реальной БД и автоматически сгенерируйте PHP-миграции с методами up() и down().

Ключевые особенности

  • Schema-first — описывайте таблицы, колонки, индексы и FK в schema.php или schema.yaml
  • Автоматический дифф — сравнение схемы с реальной БД и генерация миграций
  • Нулевые обязательные зависимости — только PHP 8.4 и ext-pdo; YAML опционален через symfony/yaml
  • Мультибаза — MySQL, PostgreSQL и SQLite из коробки
  • Rebuild pipeline для SQLite — автоматическая обработка сложных DDL-изменений
  • Fluent API миграций — сгенерированные миграции используют удобный SchemaBuilder
  • PHPStan Level 9 — полностью статически проанализированная кодовая база
  • Дружественный к Rowcast — общий PDO, те же соглашения

Быстрый пример

Определите схему в schema.php:

<?php

return [
    'tables' => [
        'users' => [
            'columns' => [
                'id' => ['type' => 'integer', 'primaryKey' => true, 'autoIncrement' => true],
                'email' => ['type' => 'string', 'length' => 255],
                'created_at' => ['type' => 'datetime', 'default' => 'CURRENT_TIMESTAMP'],
            ],
            'indexes' => [
                'idx_users_email' => ['columns' => ['email'], 'unique' => true],
            ],
        ],
    ],
];

Затем сгенерируйте и примените миграции:

vendor/bin/rowcast-schema diff      # сгенерировать миграцию из изменений схемы
vendor/bin/rowcast-schema migrate   # применить pending-миграции
vendor/bin/rowcast-schema status    # проверить статус синхронизации

Требования

  • PHP >= 8.4
  • Расширение PDO

Установка

composer require ascetic-soft/rowcast-schema

Документация

Быстрый старт

Установка, конфигурация и первая миграция за 5 минут.

Описание схемы

PHP и YAML форматы, типы колонок, индексы и FK.

CLI команды

diff, migrate, rollback и status.

Миграции

Формат миграций, SchemaBuilder API и migration runner.

Поддержка SQLite

Rebuild pipeline для сложных DDL-изменений.

Справочник API

Полный справочник по классам и интерфейсам.