Перенести данные из REVO на EVO

Добрый день, гуру.

Суть проблемы — есть старый сайт на REVO (интернет-магазин), версия 2.2.10-pl, и обновляться не планируется.
Будет создаваться новый аналогичный на EVO.

Подскажите, как перенести данные из старого сайта REVO на новый EVO? Интересуют в первую очередь товары (ресурсы плюс ТВ).

Никогда раньше подобным не занимался, а гугл выдает только с EVO на REVO, а нужно наоборот. Если плохо искал — ткните носом)).

Спасибо.

26 комментариев

avatar
Так таблицы же почти одинаковые, напиши простенький скрипт, который выберет из одной таблицы и запишет в другую.
Комментарий отредактирован 2018-07-06 21:11:33 пользователем Pathologic
avatar
Спасибо.
avatar
Можно просто перетащить нужные талицы и выполнить пару запросов, напомните плз завтра скину что нужно
avatar
Спасибо, завтра напомню))
avatar
Добрый день, разрешите напомнить о вчерашней любезности поделиться решением перетащить нужные таблицы с REVO на EVO
avatar

ALTER TABLE `modx_site_templates`
  ADD COLUMN `selectable` TINYINT(4) NOT NULL DEFAULT '1' AFTER `locked`;

ALTER TABLE `modx_site_content`
  ADD COLUMN `alias_visible` INT(2) NOT NULL DEFAULT '1' COMMENT 'Hide document from alias path';

ALTER TABLE `modx_site_content`
  ADD COLUMN `haskeywords` tinyint(1) NOT NULL DEFAULT '0' ;

ALTER TABLE `modx_site_content`
  ADD COLUMN `hasmetatags` tinyint(1) NOT NULL DEFAULT '0' ;

ALTER TABLE `modx_site_tmplvars`
  ADD COLUMN `display_params` text COMMENT 'Display Control Properties';
avatar
Тащим нужные таблицы:
Контент
Шаблоны
Все что касается ТВ

так же можно стянуть еще и чанки остальное тянуть не надо
avatar
после того как стащили таблицы выполняем запрос выже поменяв префикс на нужный этим мы приведем таблицу в нужный вид что б не было проблем с работой в ЕВО :) ну и все перенос закончен
avatar
Спасибо огромное!
avatar
А индексы? Я не смотрел, совпадают ли они (скорее всего — нет).
avatar
В целом все получилось, но вероятно где-то я недопонял или не так сделал.

Делал следующим образом:
1. Взял базу от готового ранее сделанного сайта EVO 1.4.0.
2. Открыл ее в Notepad++ и удалил таблицы modx_site_templates, modx_site_content, modx_site_tmplvars, modx_site_tmplvar_contentvalues — структуру и дамп данных.
3. Вместо удаленных загрузил аналогичные таблицы (тоже и структуру и дампы данных) сайта REVO.
4. Загрузил получившуюся базу данных sql на сайт EVO, выполнил запрос из Ваших рекомендаций выше.
5. Зашел на сайт и стал проверять:
Дерево ресурсов сформировалось, шаблоны подключились, ТВ у которых названия совпали (например, price, img, tags) прописались, остальные отвалились. Отвалившиеся TV подключил к шаблону товаров вручную — они прописались и данные в них появились правильно (сверил несколько товаров с оригиналом на REVO).

И я возрадовался! Но не долго.

Выявился какой-то глюк при создании нового ресурса — ресурс создается неопубликованным, ему присваивается id=0 и в админке он не открывается. Открыл базу данных и в таблице modx_site_content дописал id очередного ресурса AUTO_INCREMENT=1835, но это не помогло.

Подскажите, куда копнуть, или где я изначально что-то не так сделал?

Возможно, надо было структуры таблиц как-то видоизменять а не тупо тащить из REVO, или для таблицы modx_site_tmplvar_contentvalues тоже какой-то запрос делать (этой таблицы в примере не было, но в ней все данные по ТВ-шкам).

Спасибо.
avatar
Надо было тащить все таблици связанные с тв
А то ж там связка по айди а не по названиям
avatar
Добавил таблицу modx_site_tmplvar_templates, стало лучше в том плане, что ТВ к шаблонам вручную подключать не надо, они подключились сами.
Но глюк остался — при создании нового ресурса по-прежнему новому ресурсу присваивается id=0 и в админке он не открывается.
Визуально это выглядит так:
1. При сохранении справа белый лист.
2. При попытке открыть появляется такой транспарант:
Конфигурация содержит ошибки.

Ошибка конфигурации: 'Страница сообщения об ошибке, указанная в конфигурации сайта, не опубликована.'

Что это значит?
Это означает, что она недоступна посетителям сайта. Необходимо опубликовать страницу сообщения об ошибке, чтобы эта функция работала правильно.
Кстати, подскажите что означает этот транспарант и как хотя бы ошибку прочитать

И даже если новому ресурсу назначить шаблон Бланк, он себя ведет так же, т.е. скорее всего не таблицы с ТВ-шками здесь виноваты.

Спасибо.
avatar
А это похоже на глюк с автоинкрементом
avatar
Похоже, но дописать или в структуру таблицы
ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='Contains the site document tree.' AUTO_INCREMENT=1835 ;

или отдельно

ALTER TABLE `modx_site_content`
MODIFY `id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=1835;

не помогает
avatar
Еще — Новые шаблоны и ТВ не создаются вообще, изменения в старые не вносятся.
avatar
странно должно все работать киньте в личку доступы постараюсь завтра глянуть 100% какая то мелочь мешает
avatar
Спасибо. Сейчас еще посижу поразбираюсь…
Открылись некоторые вещи для осмысления.
Например, есть отличия в локалке и на хостинге (разные версии PMA, плюс сайт REVO старый и когда-то хостинг грешил тем что изменял тип таблиц с MyISAM на InnoDB). Есть и другие дела для осмысления, например, в структуре таблицы modx_site_content у REVO нет колонки alias_visible, а когда снимаю базу с хостинга — эту колонку EVO добавляет.
Вчера проделал все операции с нуля на хостинге — все то же самое, но еще появилась какая-то ошибка.
Сегодня с учетом замечания Pathologic взял индексы для таблицы modx_site_content из REVO — и новые ресурсы методом копирования стали создаваться! Правда, данные из ТВ не копируются, копируются только данные таблицы modx_site_content, но id присваивается правильно. Уже что-то))
Но просто создать новый ресурс — стало еще хуже, вообще не создается, пишет — недостаточно прав.
В общем, посижу еще, и наверное попробую на другом хостинге, а то бегет уже утомил, у него еще и PMA подглючивает.
Ну а не получится — буду сдаваться в объятия Вашей любезности))
avatar
Можно попробовать после всего этого переустановить ево, по идее все нужное добавится. Ну а так еще один получился пример того, как желание схалявить привело к геморрою ((:
avatar
Критика принимается, но думаю еще недостаток квалификации сказывается — никогда ничем подобным ранее не занимался… заодно и подучусь))
А за подсказку спасибо — после обновления дерево ресурсов стало работать как часики. Шаблоны и ТВ тоже начали создаваться, но с id=0, попробую им тоже прописать индексы от REVO, как ранее сделал для таблицы content.
avatar
Индексы не от рево нужно прописывать, а от ево. Они должны при обновлении были вообще сами добавиться.
avatar
Увы, наоборот удалились (( Я их точно прописывал — и индексы, и автоинкременты. А снял базу после обновления — а их нет, осталось только от сонтент ((
И сейчас прописываю от EVO, от REVO PMA перестал пропускать, выдает ошибки.
avatar
Дмитрий, сдаюсь (( доступы в ЛС, посмотрите плз по возможности.
avatar
Да надо было просто таблицы сравнить там несколько полей не хватало :) добавил теперь все ок главное
avatar
Спасибо огромное!
avatar
Код по запросам вот такой теперь:


ALTER TABLE `modx_site_templates`
  ADD COLUMN `selectable` TINYINT(4) NOT NULL DEFAULT '1' AFTER `locked`;
  
ALTER TABLE `modx_site_templates`  
  ADD COLUMN `createdon` int(11) NOT NULL DEFAULT '0' AFTER `locked`;
 
ALTER TABLE `modx_site_templates`  
  ADD COLUMN `editedon` int(11) NOT NULL DEFAULT '0' AFTER `locked`;

ALTER TABLE `modx_site_tmplvars`
  ADD COLUMN `createdon` int(11) NOT NULL DEFAULT '0' AFTER `default_text`;

ALTER TABLE `modx_site_tmplvars`
  ADD COLUMN `editedon` int(11) NOT NULL DEFAULT '0' AFTER `default_text`;

ALTER TABLE `modx_site_content`
  ADD COLUMN `alias_visible` INT(2) NOT NULL DEFAULT '1' COMMENT 'Hide document from alias path';

ALTER TABLE `modx_site_content`
  ADD COLUMN `haskeywords` tinyint(1) NOT NULL DEFAULT '0' ;

ALTER TABLE `modx_site_content`
  ADD COLUMN `hasmetatags` tinyint(1) NOT NULL DEFAULT '0' ;

ALTER TABLE `modx_site_tmplvars`
  ADD COLUMN `display_params` text COMMENT 'Display Control Properties';
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.