Быстрый старт
Начните работу с Rowcast Schema за 5 минут.
Содержание
Установка
composer require ascetic-soft/rowcast-schema
Требования:
- PHP >= 8.4
- Расширение PDO
Опционально: поддержка YAML
Если предпочитаете YAML-формат:
composer require symfony/yaml
Конфигурация
Создайте rowcast-schema.php в корне проекта (путь по умолчанию):
<?php
return [
'connection' => [
'dsn' => 'mysql:host=localhost;dbname=app',
'username' => 'root',
'password' => 'secret',
],
'schema' => __DIR__ . '/schema.php',
'migrations' => __DIR__ . '/migrations',
'migration_table' => '_rowcast_migrations',
'ignore_tables' => [
'/^tmp_/',
'/^audit_/',
static fn (string $table): bool => str_ends_with($table, '_shadow'),
],
];
Конфиг можно хранить и в кастомной директории:
vendor/bin/rowcast-schema --config=database/rowcast-schema.php diff
Конфиг-файл может возвращать:
- массив (классический режим),
- или фабрику
static function (string $projectDir): array(удобно для env из корня проекта).
migration_table задает таблицу для хранения примененных версий и автоматически исключается из diff схемы.
ignore_tables используйте для своих правил исключения (regex-строки и/или callback).
| Ключ | Описание |
|---|---|
connection.dsn |
Строка подключения PDO |
connection.username |
Имя пользователя БД |
connection.password |
Пароль |
connection.options |
Опциональный массив PDO-опций |
schema |
Путь к файлу схемы (.php, .yaml, .yml) |
migrations |
Директория для миграций |
migration_table |
Таблица учёта применённых миграций (по умолчанию: _rowcast_migrations) |
ignore_tables |
Regex/callback-правила исключения таблиц из diff |
Определите схему
Создайте 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
Эта команда сравнивает схему с текущей БД и создаёт PHP-файл миграции в директории migrations/.
Предварительный просмотр без генерации файла:
vendor/bin/rowcast-schema diff --dry-run
Глобальный путь к конфигу можно передать для любой команды:
vendor/bin/rowcast-schema --config=database/rowcast-schema.php status
Примените миграции
vendor/bin/rowcast-schema migrate
Проверьте статус
vendor/bin/rowcast-schema status
Показывает применённые и pending-миграции, а также расхождения между схемой и БД.
Что дальше?
- Описание схемы — все типы колонок, индексы и FK
- CLI команды — полный справочник CLI
- Миграции — формат миграций и SchemaBuilder API
- Поддержка SQLite — rebuild pipeline
- Справочник API — справочник по классам