Правила написания скриптов миграций





Специалисты отдела внедрения 1С-Битрикс рекомендуют для переноса изменений в базе данных с "девелоперской" и "демо" площадки на боевую использовать специально написанные скрипты, у которых в прологе подключается Битрикс.
Опытным путём мы выяснили, какие правила нужно соблюдать, чтобы использование этой методики было безопасно для проекта и защищало от человеческого фактора.

 - повторный запуск скрипта миграции не должен приводить к фэйлу системы. Это очень важное правило, которое необходимо выполнять даже если из-за этого разработка усложняется на порядок. Часть команд может не выполниться, связь с сервером может прерваться, и выправлять "покалеченную" базу данных руками будет просто дороже, чем заранее подстелить соломку.

 - скрипты миграции не должны быть доступны из веба неавторизованным пользователям (иначе яндекс однажды зайдёт туда и позапускает их. Обратите внимание, что robots.txt не спасёт в такой ситуации - некоторые боты его игнорируют)
Желательно класть скрипты на уровень выше DOCUMENT_ROOT'а и запускать из bash-консоли. Можно также воспользоваться решением: https://bitbucket.org/andrey_ryabin/bitrix.dev.sprint

 - для упрощения кода можно и нужно выносить типовые конструкции (вида "Создать свойство инфоблока с такими-то параметрами, если оного ещё не существует") в отдельный класс и активно использовать в скриптах миграций.
Примеры таких классов можно посмотреть тут:
https://github.com/may-cat/maycat.consolejedi/blob/master/lib/wizard.php

Комментарии

comments powered by HyperComments