chesnokov
Total posts: 5
17 Окт 2014 11:05

Доброго времени суток. Задача: есть два сайта, оба на 3 джумле, на обоих сайтах стоит кобальт 8, структура одинаковая (т.е. по сути один сайт копия другого). Но некоторые поля заполняются только на 2-м сайте (на первом они тоже есть). Идея в том, чтобы через запрос к бд перенести значения только этих полей. Запрос делаю такой

UPDATE `db_data1`.`pref_js_res_record_values` AS `b1`, `db_data2`.`prefix_js_res_record_values` AS `b2`
SET `b2`.`field_value` = `b1`.`field_value`
WHERE (`b1`.`record_id` = 32) = (`b2`.`record_id` = 32);

результат: значение поля где record_id = 32 во-второй базе меняется на значение поля из первой базы, но на сайте остается прежним + значения других полей во-второй базе меняются на значение первого (id=1) поля из первой (в phpmyadmin это видно, но на сайте так же не отображается). Подскажите, в чем может быть проблема.

Последние изменения: 22 Окт 2014


Konstantin
Total posts: 1,113
20 Окт 2014 07:02

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


Гость
22 Окт 2014 09:31

Спасибо за информацию. А зачем пересохранять? И можно ли настроить автоматическое пересохранение, если это важно?


Konstantin
Total posts: 1,113
22 Окт 2014 09:36

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


Гость
22 Окт 2014 10:14

Под пересохранением имеется ввиду Reindex? Или ручное пересохранение материалов?


Konstantin
Total posts: 1,113
22 Окт 2014 10:35

Да реиндекс, при сохранени это происходит автоматически для конкретной записи.

Работает на Cobalt