Doctrine migrations

Preview:

Citation preview

Doctrine Migrations

Шатов МаксимРазработчикshatovms@softline.ru08.11.2013

Резюме

Doctrine Migrations представляет дополнительный функционал поверх слоя абстракции от базы данных (DBAL), позволяющий управлять версиями схемы базы данных и упрощающий процесс внесения изменений в БД. Это очень простой в использовании и мощный инструмент.

Варианты использования:

● В качестве дополнения

● В консоли, зарегистрировав команды

● PHP Binary (PHAR)

Обзор классов

● Doctrine\DBAL\Migrations\AbstractMigration● Doctrine\DBAL\Migrations\Configuration\AbstractFileConfiguration● Doctrine\DBAL\Migrations\Configuration\Configuration● Doctrine\DBAL\Migrations\Configuration\XmlConfiguration● Doctrine\DBAL\Migrations\Configuration\YamlConfiguration● Doctrine\DBAL\Migrations\Migration● Doctrine\DBAL\Migrations\MigrationsVersion● Doctrine\DBAL\Migrations\OutputWriter● Doctrine\DBAL\Migrations\Tools\Console\Command\AbstractCommand● Doctrine\DBAL\Migrations\Tools\Console\Command\DiffCommand● Doctrine\DBAL\Migrations\Tools\Console\Command\ExecuteCommand● Doctrine\DBAL\Migrations\Tools\Console\Command\GenerateCommand● Doctrine\DBAL\Migrations\Tools\Console\Command\MigrateCommand● Doctrine\DBAL\Migrations\Tools\Console\Command\StatusCommand● Doctrine\DBAL\Migrations\Tools\Console\Command\VersionCommand● Doctrine\DBAL\Migrations\Version

Класс миграции

Работа со схемой

Выполнение sql

Подключение Bitrix API

Пример миграционного файла

Преимущества

● Возможность генерации миграций

● Не нужно заботиться о номере миграции

● Информация о выполненных миграциях храниться в БД

● Проверка статуса миграций

● Для того чтобы применить все доступные миграции необходимо выполнить команду

● Откат миграций

● Возможен/предусмотрен пропуск миграций

● Гибкий механизм управления миграциями

Возможные проблемы

● Unknown database type enum requested

Doctrine не поддерживает этот тип поля и некоторые другие (SET, например).

Решение:

В конфигурационный файл добавить:

Непосредственно в коде определить соответствие типов

Интеграция с PHPStorm/IntelliJ IDEA

Интеграция с PHPStorm/IntelliJ IDEA

Интеграция с PHPStorm/IntelliJ IDEA

Спасибо за внимание!Вопросы?