Как и обещалось отписываю о ходе обновы
Суть задачи: Есть 2 сайта рабочая версия (РВ) и тестовая версия (ТВ). На ТВ ведутся разработки приложения, тестируются, одобряются заказчиком и уж потом ставятся на РВ. Все чанки и сниппеты да и вообще максимально все что можно хранится в фалах и подключено как статика. До сегодня были обновления в рамках исправления багов или фиксов интерфейса, оптимизация и т.д. и решалось это все копированием файлов из ТВ на РВ.
Сегодня созрела глобальная обнова по расширению функционала и стала задача обновить систему в «ленивом» режиме без ручной регистрации всех новых сниппетов. Системные файлы MODx не менялись и вообще к самому движку это не имеет отношения. Обновление нужно было провести так что бы не затронуть данные РВ поскольку на ней реально работают люди.
Процесс:
1. Забекапился.
2. Скопировал все (касающиеся нашего проекта) папки с файлами с ТВ на РВ.
3. Взял базу с ТВ и выгрузил таблицы БД
*_site_htmlsnippets — здесь записаны все чанки
*_site_snippets — здесь записаны все сниппеты
*_site_plugins — здесь плагины
Ресурсы не брались поскольку в РВ версии существует лента новостей которая создает Ресурс для каждой новости. Поэтому ID ресурсов совпадать точно не будут
Отсюда первая проблема, в коде использовались 2 ссылки на ресурс вида [[~1]] поправил руками
4. Залил таблицы на РВ
5. Добавил новые таблицы в БД
7. Очистил кеш через фтп.
8. Зашел в админку нашел проблему.
Не все чанки сниппеты были видны. Причина в том что не перенес категории.
Возврат на ТВ и вытащил еще 2 таблицы
*_categories
*_categories_closure
Все заработало и все показывает. Обнова прошла достаточно быстро и с экономила время. Ну дольше бы пришлось регать все руками.
Вывод лично для себя. При обновах проектов где нужно закинуть много чанков и сниппетов, вполне пригодная для работы схема.