SlideShare a Scribd company logo
Doctrine Migrations
Шатов Максим
Разработчик
shatovms@softline.ru
08.11.2013
Резюме
Doctrine Migrations представляет дополнительный функционал
поверх слоя абстракции от базы данных (DBAL), позволяющий
управлять версиями схемы базы данных и упрощающий процесс
внесения изменений в БД. Это очень простой в использовании и
мощный инструмент.
Варианты использования:
●

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

●

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

●

PHP Binary (PHAR)
Обзор классов
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●

DoctrineDBALMigrationsAbstractMigration
DoctrineDBALMigrationsConfigurationAbstractFileConfiguration
DoctrineDBALMigrationsConfigurationConfiguration
DoctrineDBALMigrationsConfigurationXmlConfiguration
DoctrineDBALMigrationsConfigurationYamlConfiguration
DoctrineDBALMigrationsMigration
DoctrineDBALMigrationsMigrationsVersion
DoctrineDBALMigrationsOutputWriter
DoctrineDBALMigrationsToolsConsoleCommandAbstractCommand
DoctrineDBALMigrationsToolsConsoleCommandDiffCommand
DoctrineDBALMigrationsToolsConsoleCommandExecuteCommand
DoctrineDBALMigrationsToolsConsoleCommandGenerateCommand
DoctrineDBALMigrationsToolsConsoleCommandMigrateCommand
DoctrineDBALMigrationsToolsConsoleCommandStatusCommand
DoctrineDBALMigrationsToolsConsoleCommandVersionCommand
DoctrineDBALMigrationsVersion
Класс миграции
Работа со схемой
Выполнение sql
Подключение Bitrix API
Пример миграционного файла
Преимущества
●

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

●

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

●

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

●

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

●

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

●

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

●

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

●

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

Unknown database type enum requested
Doctrine не поддерживает этот тип поля и некоторые другие (SET,
например).
Решение:
В конфигурационный файл добавить:

Непосредственно в коде определить соответствие типов
Интеграция с PHPStorm/IntelliJ IDEA
Интеграция с PHPStorm/IntelliJ IDEA
Интеграция с PHPStorm/IntelliJ IDEA
Спасибо за внимание!
Вопросы?

More Related Content

Similar to Doctrine migrations

Эффективное управление содержимым веб-сайтов
Эффективное управление содержимым веб-сайтовЭффективное управление содержимым веб-сайтов
Эффективное управление содержимым веб-сайтовDrupal Camp Kyiv
 
Web deployment
Web deploymentWeb deployment
Web deployment
GetDev.NET
 
Mastering Declarative Database Schema - MageConf 2019
Mastering Declarative Database Schema - MageConf 2019Mastering Declarative Database Schema - MageConf 2019
Mastering Declarative Database Schema - MageConf 2019
Max Pronko
 
Jiramania презентации @augspb
Jiramania презентации   @augspbJiramania презентации   @augspb
Jiramania презентации @augspb
Gonchik Tsymzhitov
 
IT-инфраструктура. FAQ для разработчика
IT-инфраструктура. FAQ для разработчикаIT-инфраструктура. FAQ для разработчика
IT-инфраструктура. FAQ для разработчика
Mikhail Chinkov
 
Firebird 2.5 - вектор дальнейшего развития, Dmitry Yemanov, (in Russian)
Firebird 2.5 - вектор дальнейшего развития, Dmitry Yemanov, (in Russian)Firebird 2.5 - вектор дальнейшего развития, Dmitry Yemanov, (in Russian)
Firebird 2.5 - вектор дальнейшего развития, Dmitry Yemanov, (in Russian)
Alexey Kovyazin
 
Расширение функционала продуктов Atlassian с помощью плагинов
Расширение функционала продуктов Atlassian с помощью плагиновРасширение функционала продуктов Atlassian с помощью плагинов
Расширение функционала продуктов Atlassian с помощью плагиновAndrey Rebrov
 
Процесс разработки и тестирования с Docker + gitlab ci
Процесс разработки и тестирования с  Docker + gitlab ciПроцесс разработки и тестирования с  Docker + gitlab ci
Процесс разработки и тестирования с Docker + gitlab ci
Александр Сигачев
 
Oracle Database 12c. Консолидация и Мультиарендность
Oracle Database 12c. Консолидация и МультиарендностьOracle Database 12c. Консолидация и Мультиарендность
Oracle Database 12c. Консолидация и МультиарендностьAndrey Akulov
 
Фичи н-н-нада? Или почему стоит использовать модуль Features.
Фичи н-н-нада? Или почему стоит использовать модуль Features.Фичи н-н-нада? Или почему стоит использовать модуль Features.
Фичи н-н-нада? Или почему стоит использовать модуль Features.
Eugene Fidelin
 
Модули платформы B4
Модули платформы B4Модули платформы B4
Модули платформы B4
Bars Group
 
Dmytro Nemesh "Building the perfect infrastructure with Kubernetes"
Dmytro Nemesh "Building the perfect infrastructure with Kubernetes"Dmytro Nemesh "Building the perfect infrastructure with Kubernetes"
Dmytro Nemesh "Building the perfect infrastructure with Kubernetes"
Fwdays
 
бэкап баз данных Oracle c помощью handy backup, март 2014
бэкап баз данных Oracle c помощью handy backup, март 2014бэкап баз данных Oracle c помощью handy backup, март 2014
бэкап баз данных Oracle c помощью handy backup, март 2014Handy_Backup
 
Application deployment & configuration management
Application deployment & configuration managementApplication deployment & configuration management
Application deployment & configuration managementAlexander Kirillov
 
Создаем Drupal дистрибутив: от идеи до сопровождения.
Создаем Drupal дистрибутив: от идеи до сопровождения.Создаем Drupal дистрибутив: от идеи до сопровождения.
Создаем Drupal дистрибутив: от идеи до сопровождения.DrupalForumZP2012
 
Database automated deployment and versioning ...for smart people
Database automated deployment and versioning ...for smart peopleDatabase automated deployment and versioning ...for smart people
Database automated deployment and versioning ...for smart people
Alexey Diyan
 
Java. Lecture 12. Development Tools
Java. Lecture 12. Development ToolsJava. Lecture 12. Development Tools
Java. Lecture 12. Development Toolscolriot
 
1С-Битрикс - Производительность
1С-Битрикс - Производительность1С-Битрикс - Производительность
1С-Битрикс - Производительность
Alexander Demidov
 
Непрерывная интеграция при разработке баз данных. (Show version)
Непрерывная интеграция при разработке баз данных. (Show version)Непрерывная интеграция при разработке баз данных. (Show version)
Непрерывная интеграция при разработке баз данных. (Show version)
Vladimir Bakhov
 
Автоматизируй это. Кирилл Тихонов ➠ CoreHard Autumn 2019
Автоматизируй это. Кирилл Тихонов ➠  CoreHard Autumn 2019Автоматизируй это. Кирилл Тихонов ➠  CoreHard Autumn 2019
Автоматизируй это. Кирилл Тихонов ➠ CoreHard Autumn 2019
corehard_by
 

Similar to Doctrine migrations (20)

Эффективное управление содержимым веб-сайтов
Эффективное управление содержимым веб-сайтовЭффективное управление содержимым веб-сайтов
Эффективное управление содержимым веб-сайтов
 
Web deployment
Web deploymentWeb deployment
Web deployment
 
Mastering Declarative Database Schema - MageConf 2019
Mastering Declarative Database Schema - MageConf 2019Mastering Declarative Database Schema - MageConf 2019
Mastering Declarative Database Schema - MageConf 2019
 
Jiramania презентации @augspb
Jiramania презентации   @augspbJiramania презентации   @augspb
Jiramania презентации @augspb
 
IT-инфраструктура. FAQ для разработчика
IT-инфраструктура. FAQ для разработчикаIT-инфраструктура. FAQ для разработчика
IT-инфраструктура. FAQ для разработчика
 
Firebird 2.5 - вектор дальнейшего развития, Dmitry Yemanov, (in Russian)
Firebird 2.5 - вектор дальнейшего развития, Dmitry Yemanov, (in Russian)Firebird 2.5 - вектор дальнейшего развития, Dmitry Yemanov, (in Russian)
Firebird 2.5 - вектор дальнейшего развития, Dmitry Yemanov, (in Russian)
 
Расширение функционала продуктов Atlassian с помощью плагинов
Расширение функционала продуктов Atlassian с помощью плагиновРасширение функционала продуктов Atlassian с помощью плагинов
Расширение функционала продуктов Atlassian с помощью плагинов
 
Процесс разработки и тестирования с Docker + gitlab ci
Процесс разработки и тестирования с  Docker + gitlab ciПроцесс разработки и тестирования с  Docker + gitlab ci
Процесс разработки и тестирования с Docker + gitlab ci
 
Oracle Database 12c. Консолидация и Мультиарендность
Oracle Database 12c. Консолидация и МультиарендностьOracle Database 12c. Консолидация и Мультиарендность
Oracle Database 12c. Консолидация и Мультиарендность
 
Фичи н-н-нада? Или почему стоит использовать модуль Features.
Фичи н-н-нада? Или почему стоит использовать модуль Features.Фичи н-н-нада? Или почему стоит использовать модуль Features.
Фичи н-н-нада? Или почему стоит использовать модуль Features.
 
Модули платформы B4
Модули платформы B4Модули платформы B4
Модули платформы B4
 
Dmytro Nemesh "Building the perfect infrastructure with Kubernetes"
Dmytro Nemesh "Building the perfect infrastructure with Kubernetes"Dmytro Nemesh "Building the perfect infrastructure with Kubernetes"
Dmytro Nemesh "Building the perfect infrastructure with Kubernetes"
 
бэкап баз данных Oracle c помощью handy backup, март 2014
бэкап баз данных Oracle c помощью handy backup, март 2014бэкап баз данных Oracle c помощью handy backup, март 2014
бэкап баз данных Oracle c помощью handy backup, март 2014
 
Application deployment & configuration management
Application deployment & configuration managementApplication deployment & configuration management
Application deployment & configuration management
 
Создаем Drupal дистрибутив: от идеи до сопровождения.
Создаем Drupal дистрибутив: от идеи до сопровождения.Создаем Drupal дистрибутив: от идеи до сопровождения.
Создаем Drupal дистрибутив: от идеи до сопровождения.
 
Database automated deployment and versioning ...for smart people
Database automated deployment and versioning ...for smart peopleDatabase automated deployment and versioning ...for smart people
Database automated deployment and versioning ...for smart people
 
Java. Lecture 12. Development Tools
Java. Lecture 12. Development ToolsJava. Lecture 12. Development Tools
Java. Lecture 12. Development Tools
 
1С-Битрикс - Производительность
1С-Битрикс - Производительность1С-Битрикс - Производительность
1С-Битрикс - Производительность
 
Непрерывная интеграция при разработке баз данных. (Show version)
Непрерывная интеграция при разработке баз данных. (Show version)Непрерывная интеграция при разработке баз данных. (Show version)
Непрерывная интеграция при разработке баз данных. (Show version)
 
Автоматизируй это. Кирилл Тихонов ➠ CoreHard Autumn 2019
Автоматизируй это. Кирилл Тихонов ➠  CoreHard Autumn 2019Автоматизируй это. Кирилл Тихонов ➠  CoreHard Autumn 2019
Автоматизируй это. Кирилл Тихонов ➠ CoreHard Autumn 2019
 

Doctrine migrations

Editor's Notes

  1. <номер>
  2. <номер>
  3. <номер>
  4. <номер>
  5. <номер>
  6. <номер>
  7. <номер>
  8. <номер>