Разбираясь с мультисайтингом столкнулся с непонятной для меня проблемой. До мультисайтинга дело не доходит, сайт один (и локально), и при попытке выделения нескольких таблиц в отдельную базу уже перестает работать.
Свежая установка друпала: Друпал - 6.15, ССК - 6.x-2.6, Computed Field 6.x-1.0-beta3 и еще несколько модулей, которые к проблеме не относятся.
Создаю новый тип материала "news" (в итоге этот материал должен быть общим для сайтов в мультисайтинге)
В нем создаю новое поле "site" (вычисляемое)
код:
результат сохраняется в базе данных.
Создаю новый материал типа "news" - Все работает как надо.
Теперь разделяю базу на две.
В settings.php выделяю несколько таблиц в отдельную базу "shar" (и переношу их в эту базу)
'default' => '',
'filters' => 'shar.',
'filter_formats' => 'shar.',
'fupload_previewlist' => 'shar.',
'locales_source' => 'shar.',
'locales_target' => 'shar.',
'role' =>'shar.',
'sessions' =>'shar.',
'users' =>'shar.',
'comments' =>'shar.',
'content_access' =>'shar.',
'content_node_field' =>'shar.',
'content_node_field_instance' =>'shar.',
'content_type_news' =>'shar.',
'node' =>'shar.',
'node_access' =>'shar.',
'node_comment_statistics' =>'shar.',
'node_counter' =>'shar.',
'node_revisions' =>'shar.',
'node_type' =>'shar.',
'term_data' =>'shar.',
'term_hierarchy' =>'shar.',
'term_node' =>'shar.',
'term_relation' =>'shar.',
'term_synonym' =>'shar.',
'trigger_assignments' =>'shar.',
'views_display' =>'shar.',
'views_object_cache' =>'shar.',
'views_view' =>'shar.',
'vocabulary_node_types' =>'shar.',
'flood' =>'shar.',
'forum' =>'shar.',
);
Возможно что таблиц перенес больше чем надо для моего случая (по разному переносил, достаточно перенести content_type_news) , однако в данном случае это не важно, поскольку работать уже перестает
При сохранении настроек поля (/admin/content/node-type/news/fields/field_site) пишет:
* user warning: Table 'content_type_news' already exists query: CREATE TABLE shar.content_type_news ( `vid` INT unsigned NOT NULL DEFAULT 0, `nid` INT unsigned NOT NULL DEFAULT 0, `field_site_value` VARCHAR(30) DEFAULT NULL, PRIMARY KEY (vid), INDEX nid (nid) ) /*!40100 DEFAULT CHARACTER SET UTF8 */ in W:\home\zr.rr\www\includes\database.inc on line 529.
При попытке сохранения материала типа news пишет:
И естественно вычисляемое поле не создается.
Собственно вопрос - как это можно побороть? Что я делаю не правильно? Почему, если одна и та же таблица находится в другой базе данных это уже вызывает ошибку?
P.S. Без модуля computed_field то что может без него работать - работает без ошибок.
Комментарии
Еще несколько локализую проблему.
Теперь установка чистая Друпал - 6.15, ССК - 6.x-2.6, Computed Field 6.x-1.0-beta3 никаких других модулей нет.
перед инсталляцией в setting.php пишу
$db_prefix = 'al4_';
т.е. база al3 и префикс для всех таблиц al4_.
Все работает нормально. Т.е. префиксы computed_field не пугают.
Уничтожаю установку и базу. Все делаю точно так же повторно кроме того, что при следующей инсталляции пишу:
$db_prefix = 'al4.';
т.е. база по умолчанию al3, однако ВСЕ таблицы создать в базе al4.
Ошибки начинают сыпаться при попытке войти в настройки поля computed_field.
Народ! Очень прошу - помогите решить эту проблему! Очень надо...
походу кроме меня это никому не надо...![Sad](https://drupal.ru/sites/all/modules/contrib/smiley/packs/kolobok/sad.gif)
да проблема есть, но решения нет!
У меня сейчас увы полный цейтнот, если есть возможность сформулировать проблему для автора модуля, то буду очень благодарен. Если нет, то сам смогу этим заняться не раньше, чем через 2-3 недели....
http://www.drupal.ru/node/39590
смыл в том что при использовании разных баз целиком все нормал, а как только хоть одну таблицу объединяешь, так сразу ckk накрывается медным тазом, даже не отображаются поля
та же самая проблема с warning: Invalid argument supplied for foreach() in /modules/cck/content.module on line 1022.
сайт работает с двумя БД - одна общая, где
'content_node_field'=>'_shared.',
'content_node_field_instance'=>'_shared.',
'content_type_blog'=>'_shared.',
'content_type_news'=>'_shared.',
'content_type_page'=>'_shared.',
'content_type_photo'=>'_shared.',
Жесть твориться после подрубания второго сайта к общей БД. Аналогичные глюки.... ФАККК
Давно хотел написать как я эту проблему обошел, но все руки не доходили. Сегодня еще раз случайно проверил - проблема осталась!!! Поэтому рассказываю, свое совершенно тривиальное решение.
Для всех сайтов основной базой сделал общую, а таблицы которые для сайтов уникальные и находятся в другой базе (и при этом не заполняются с использованием Computed Field ) прописываю в setting в виде префиксов с точкой. И все работает.