26 янв. 2015 г., 12:08

Update проекта на modx

Здравствуйте. Вопрос следующего характера. Существует достаточно большой проект на modx (офисное приложение) люди в нем работают. Подошло время сделать апдейт в связи с расширением возможностей изменением каких то функций и т.д. Обычный перенос не годится так как на тестовой версии данные фейковые, а задеть существующие данные на реальном проекте нельзя.
Реально ли сделать перенос таким вот способом: перенести все файлы проекта на сервер. перенести в бд системные таблицы modx
Нормально ли будет после такого обновления принимать все новые чанки и сниппеты система? На какие таблицы БД стоит обратить внимание?
Дак ведь шут знает, что вы там своего написали и что пойдет нормально, а где будут проблемы. Проведите все-равно репетицию переноса на локалке. И вообще вас интересует апдейт самого вашего компонента или modx? Так-то обновите все, что у вас есть до совместимого с последней версией состояния и обновите cms. Но сайт на время все ж лучше закрыть.
Для начала уточните с какой версии MODX-а и на какую собираетесь переноситься.
версия не меняется… обновляется только файлы приложения которое работает на CMF MODx 2.3.2-pl. Т.е. системные файлы не затрагиваются вообще. Нужно обновить только собственный код + добавить новые чанки/сниппеты. Все чанки/сниппеты в файлах и подключены как статика. Вот и думаю могу ли я взять просто перекинуть файлы на сервер и скопировать таблицы modx_site_htmlsnippets modx_site_snippets
и не парится с ручным подключением файлов Нормально ли это подтянется и будет показываться нормально в админке. Если так можно сделать то возможно есть подводные камни какие то. И какие таблицы стоит переносить… Те что я написал выше это чанки и сниппеты
1. Создаешь копию боевого сайта, выполняешь как тебе кажется, и смотришь работает или нет. Если работает, то делаешь это же и с боевым (не забываем про бекапы). 2. Просто обновление БД не поможет, так как если ли бы чанки не были статическими, код их брался бы из бд, а так берется из файлов, так что таким чанкам файлы нужны, а не записи в БД. 3. git в помощь!
2. Просто обновление БД не поможет, так как если ли бы чанки не были статическими, код их брался бы из бд, а так берется из файлов, так что таким чанкам файлы нужны, а не записи в БД.
ну копия файла все равно помещается в бд… ну даже не в этом дело… файлы есть… хочется просто взять скопировать с сервера разработки папку с проектом на рабочий, перенести 2 таблицы и больше ничего делать :) ну будем пробовать
3. git в помощь!
давно пора но времени нет
Я вообще файлы в своем компоненте через ide правил. Но бекап == страховка. А что, много сниппетов?
Я вообще файлы в своем компоненте через ide правил. Но бекап == страховка. А что, много сниппетов?
штук 150, там не только сниппеты но и чанки.
да все это понятно, IDE .GIT и т.д.
но зачем парится если можно найти легчий путь… сейчас вобщим сделаю отпишу о результате :)
«штук 150» от уж прилично так прилично.
Потому что ни чанки, ни сниппеты не имеют возможности быть расширенными (ну и про другие минусы помним). Потому 100, 200 и даже 300 чанков/сниппетов на MODX-проекте — это не редкость.
ну к примере генератор таблиц имеет 1. сам сниппет 2. общий чанк table.tpl
<table .... > [[+table.thead]] <tbody> [[+table.rows]] </tbody>
3. чанк tablethaed.tpl 4. чанк tablerow.tpl
3 и 4 чанки для таблиц разные ну и табличек пока что штук до сотни но толи еще будет…
Как и обещалось отписываю о ходе обновы
Суть задачи: Есть 2 сайта рабочая версия (РВ) и тестовая версия (ТВ). На ТВ ведутся разработки приложения, тестируются, одобряются заказчиком и уж потом ставятся на РВ. Все чанки и сниппеты да и вообще максимально все что можно хранится в фалах и подключено как статика. До сегодня были обновления в рамках исправления багов или фиксов интерфейса, оптимизация и т.д. и решалось это все копированием файлов из ТВ на РВ. Сегодня созрела глобальная обнова по расширению функционала и стала задача обновить систему в «ленивом» режиме без ручной регистрации всех новых сниппетов. Системные файлы MODx не менялись и вообще к самому движку это не имеет отношения. Обновление нужно было провести так что бы не затронуть данные РВ поскольку на ней реально работают люди.
Процесс: 1. Забекапился. 2. Скопировал все (касающиеся нашего проекта) папки с файлами с ТВ на РВ. 3. Взял базу с ТВ и выгрузил таблицы БД *_site_htmlsnippets — здесь записаны все чанки *_site_snippets — здесь записаны все сниппеты *_site_plugins — здесь плагины Ресурсы не брались поскольку в РВ версии существует лента новостей которая создает Ресурс для каждой новости. Поэтому ID ресурсов совпадать точно не будут Отсюда первая проблема, в коде использовались 2 ссылки на ресурс вида [[~1]] поправил руками 4. Залил таблицы на РВ 5. Добавил новые таблицы в БД 7. Очистил кеш через фтп. 8. Зашел в админку нашел проблему. Не все чанки сниппеты были видны. Причина в том что не перенес категории. Возврат на ТВ и вытащил еще 2 таблицы *_categories *_categories_closure
Все заработало и все показывает. Обнова прошла достаточно быстро и с экономила время. Ну дольше бы пришлось регать все руками.
Вывод лично для себя. При обновах проектов где нужно закинуть много чанков и сниппетов, вполне пригодная для работы схема.
Как это происходит у нас? Два варианта. Вариант 1. 1. В ТВ версии фиксируем все изменения в гите git add .; git commit -am «comment»; 2. На РВ накатываем изменения git pull; 3. Очищаем кеш.
Вариант 2. Плагин newDesign (должен вызываться раньше, чем плагин modxSmarty). Делается копия скина Смарти-шаблона сайта с новым названием. Когда плагин активирован, включается другой скин сайта и кеш-префикс, и разработчик работает на боевом сайте, но никакие изменения в шаблонизации сайта не могут быть увидены простыми посетителями. Какой-нибудь новый процессор в системе они тоже никак не увидят. Таким образом на сайте ведется реальная работа с реальными данными, но сайт для неадминов работает в обычном режиме. Когда работа выполнена, проверена и готова к запуску, просто в системной настройке меняется название используемого шаблона на новый и все.
Ага. И ни циклов, нифига. В Смарти это запросто:
<table> <tbody> <tr> <th>... ...</th> </tr> {foreach $rows as $row} <tr>..........</tr> {/foreach} </tbody> </table>
Вариант 2.
вот это замечательно… но уже поздно наверное… а на будущее самое то…
Ага. И ни циклов, нифига.
почему? под это дело есть сам сниппет генератор с набором выборок :)
да безусловно смарти крутая штука я на него уже давно обратил внимание но далее знакомство не пошло
под какой версией МОДх смарти работает?
почему? под это дело есть сам сниппет генератор с набором выборок :)
Именно, сниппет, а не сам чанк или MODX-шаблон. Для оформления одного блока таблицы 4 сущности (сниппет и три чанка). Напомню, что все это — объекты. То есть помним и про нагрузку.
под какой версией МОДх смарти работает?
Смарти в MODX Revolution с самых истоков. Вся админка его на ней работает. То есть и modxSmarty можно устанавливать на любую версию MODX Revolution (но держать не ктуальные версии движка — не правильно).

Добавить комментарий