Куча багов в работе центра обновлений с языками и языковыми переменными

Сообщение от администратора клиента: “Эм… Каким-то непостижимым для меня образом наш сайт переключился на английский. Не исключено, что я куда-то сама ткнула, но я чет не понимаю, куда, в стандартных местах переключателя нет, и вообще в языках только русский…”

Начнем с повествования болей: Во время обновления все языковые переменные всего сайта перезаписываются и центр обновлений смотрит на схему в модуле и игнорирует языки сайта.

Если не прописаны в модуле языки они не записываются, но центр обновления может ругаться, что нет в схеме языков. К примеру у нас прописан Русский и Английский, а у клиента стоит Украинский, Английский и Иврит то два из трех будут пустые с битыми ссылками.
Попытки применить язык по умолчанию какой то один приводят иногда к сбою в центре обновлений и он не пропускает его.

Но это только начало, в процессе обновления как ранее и сказал система переписывает языковые переменные, а у клиента не шибко мощный сервер или PHP работает по дефолту и процесс тупо падает (привел пример в скринах).

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

Открываем АДминку и видим, что все в порядке

Переходим в другую вкладку и о успех

Лечение: Установить обновление модуля в котором есть миграция с изменением языковых переменных.

Боли в работе с клиентами без башки
Когда обновление идет больших модулей где необходимо протестировать сперва бизнес процесс на ДЕМО стенде всей экосистемы клиента, нам приходится прибегать к страшилкам, чтобы клиент не ставил бездумно обновление и сперва тестировал, но это не помогает в 90% случаев.

Пример

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

Чтобы воспроизвести данное поведение, необходимо поставить несколько сторонних модулей.
Мы сами ловили это любовь от 40 наших + пакет от Алексбрендинг. На сайте где нет пакета коллег мы ловили от 65 и более установленных дополнительных модулей, при этом обязательно чтобы они были в статусе ВКЛ, ВЫКЛ если удален нагрузку не даст.

1 лайк

Ошибку я тоже заметил… Хром начал часто админ панель переводить…

Заметили еще одну особенность когда аналогичное происходит - Слабый сервер и мало времени у скрипта на обработку запроса в фоне.

Да вот еще боль: Если установить модуль и переименовать у него языковую переменную, то при обновлении любого модуля изменения будут затерты, так как все языковые переменные будут заменены из репозитория модуля. Можно конечно заменить переменную и внести возможность править в настройках модуля, но тогда про мультиязычность нужно забыть.