Обновление на бою

Коротко: бэкап → замена файлов → кнопка «Обновить» → проверка → сброс кеша.

Нажать «Обновить» — обязательный шаг, а не формальность. Разберём почему.

1. Бэкап

База. Достаточно этих объектов:

Файлы. Каталог модуля и заглушки страниц админки bitrix/admin/mrlexndr_translate_*.php.

2. Замена кода

Залейте новые файлы поверх старых.

Проверьте, что install/version.php содержит версию выше той, что записана в b_module. Иначе Битрикс не покажет кнопку «Обновить» — он показывает её только при расхождении версий. Что делать, если кнопки нет, — отдельная страница.

3. Нажмите «Обновить»

Marketplace → Установленные решения → Обновить рядом с модулем.

Без этого шага новый серверный код будет работать со старой клиентской частью и старой схемой базы. Обновление делает три вещи, которых подмена файлов не делает:

После успешного обновления на месте должны быть:

Если обновление приходит не подменой файлов, а через сервис обновлений, сценарий другой: Обновление через сервис обновлений.

4. Проверьте структуру таблицы состояния

Колонки добавляются при каждом обновлении сами. Но если обновление по какой-то причине не выполнялось, недостающее можно добавить руками:

ALTER TABLE b_mrlexndr_translate_state ADD COLUMN FAILED_PROPS text NULL;
ALTER TABLE b_mrlexndr_translate_state ADD COLUMN MACHINE_PROPS text NULL;
ALTER TABLE b_mrlexndr_translate_state ADD COLUMN BROKEN_PROPS text NULL;

Ошибка «duplicate column» означает, что колонка уже есть, — это нормально и ничего не сломало.

5. Проверьте работу

Короткий прогон по живому сайту — Что проверить после выкладки.

6. Сбросьте кеш сайта

Настройки → Настройки продукта → Автокеширование, либо страница bitrix/admin/cache_etag.php.

Переводы кешируются, и без сброса витрина какое-то время будет показывать прежние значения. Это не поломка, но выглядит как она — и время на поиск несуществующей причины уходит настоящее.

Если что-то пошло не так

Модуль не меняет стандартные объекты Битрикса. Даже если полностью удалить его каталог и записи в b_module_to_module и b_agent, сайт продолжит работать — пропадёт только подстановка переводов.

Порядок отката — Удаление, переустановка, откат.