14
Doctrine Migrations Шатов Максим Разработчик [email protected] 08.11.2013

Doctrine migrations

Embed Size (px)

Citation preview

Page 1: Doctrine migrations

Doctrine Migrations

Шатов МаксимРазработчик[email protected]

Page 2: Doctrine migrations

Резюме

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

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

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

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

● PHP Binary (PHAR)

Page 3: Doctrine migrations

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

● 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

Page 4: Doctrine migrations

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

Page 5: Doctrine migrations

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

Page 6: Doctrine migrations

Выполнение sql

Page 7: Doctrine migrations

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

Page 8: Doctrine migrations

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

Page 9: Doctrine migrations

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

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

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

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

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

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

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

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

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

Page 10: Doctrine migrations

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

● Unknown database type enum requested

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

Решение:

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

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

Page 11: Doctrine migrations

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

Page 12: Doctrine migrations

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

Page 13: Doctrine migrations

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

Page 14: Doctrine migrations

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