АПИ для обновления до определённой версии

Рейтинг: 17.3571  
На голосовании
Предложил Самохвалов Никита 15.09.2015 11:48:17

АПИ для обновления до определённой версии

Проблема
Необходимо поддерживать на разных площадках (дев, тест, демо, бой) проекта одинаковые версии Битрикса, в т. ч. установленных в нём модулей. Копирование бекапа сайта не подходит, т. к.:
  1. «Накатывать» обновления нужно в автоматическом режиме на протяжении всего ЖЦ проекта.
  2. Данные, хранимые в БД, частично могут различаться на площадках.
Решение
Необходимо в Битриксе реализовать АПИ, которое будет позволять выборочно обновлять модули до указанной версии. Концептуальный пример (передаём код модуля и версию, до которой нужно обновиться):

SystemUpdate::updateModule($module, $version);

После полного обновления системы на одной из площадок можно будет с помощью события OnUpdatesInstalled сгенерировать файл с зафиксированными версиями установленных модулей. Этот файл размещается в VCS проекта и распространяется по всем площадкам. Далее остаётся написать нехитрый скрипт, который будет выполнять обновление модулей до зафиксированных версий, используя АПИ из примера выше.

---

Всё это можно реализовать самостоятельно, от Битрикса нужно только АПИ для установки обновлений конкретной версии.