Мультисайтинг Drupal 6 и Drupal 5 - какая разница?

Главные вкладки

Аватар пользователя turok turok 25 октября 2008 в 22:11

На Drupal 5 работают два сайта со следующими общими таблицами:

  • users
  • sessions
  • authmap
  • profile_fields
  • profile_values

Решил сделать то же самое на Drupal 6

Вставил в settings.php то, что у меня стоит на пятёрке:

$db_url = 'mysql://login:pass@base/база для первого (второго и т.д.) сайта';
// $db_prefix = '';
$db_prefix = array(
'default'   => 'база для первого (второго и т.д.) сайта.',  
'users'     => 'общая база.',
'sessions'  => 'общая база.',
'authmap'   => 'общая база.',
'profile_fields' => 'общая база.',
'profile_values' => 'общая база.',
);

Первый сайт ставится нормально, а вот последующие - ни в какую - процесс прерывается на этапе установки.

В чём дело? Чем Drupal 6 отличается от Drupal 5 в плане мультисайтинга?

Комментарии

Аватар пользователя Atl Atl 26 октября 2008 в 0:04

Я подобный вопрос уже поднимал здесь. Сам проблему еще не решил. Занят сильно.
Ответ лежит здесь, со ссылкой на офиц.объяснение.
Как я понял, нужно установить первую базу. Затем ее задампировать. Создавая подсайт в связке, базу взять из дампа основного сайта. Дальше настраивать и наполнять отдельно.
Конфликтов, судя по обяснениям, быть не должно.
На обращение в ЛС ответа не последовало. Как сам дойду - сообщу.
У кого получится раньше - не жмитесь.

Аватар пользователя turok turok 26 октября 2008 в 0:13

Попробую информативнее.

Есть Общая база, где должны храниться общие для Сата 1 и Сайта 2 таблицы:
users
sessions
authmap
profile_fields
profile_values

Есть База для сайта 1 и База для сайта 2 - где соответственно хранится все отстальные таблицы.

На пятёрке всё ставится и работает.

Когда удаляю пятёрку, удаляю таблицы из баз, ставлю на оба сайта шестёрку, запускаю на Сайте 1 install.php - всё устанавливается.

Создаю первого пользователя разлогиниваюсь с сайта 1.

На Сайте 2 запускаю install.php получаю

user warning: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ') ORDER BY fit DESC LIMIT 0, 1' at line 1 query: SELECT * FROM База для сайта 2.menu_router WHERE path IN () ORDER BY fit DESC LIMIT 0, 1 in /includes/menu.inc on line 315.

user warning: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ') ORDER BY fit DESC LIMIT 0, 1' at line 1 query: SELECT * FROM База для сайта 2.menu_router WHERE path IN () ORDER BY fit DESC LIMIT 0, 1 in /includes/menu.inc on line 315.

Аватар пользователя turok turok 26 октября 2008 в 0:36

Atl! Большое спасибо! Вручную проинсталировал базы - вроде оба сайта работают.

Что сделал:

1) После того, как установил первый сайт, посмотрел, что там с таблицами получилось. При моём варианте объединения в общей базе получилось при инсталляции 3 таблицы, в базе для Сайта 1 - 43.
Когда запустил install.php, он в базе для Сайта 2 создал только 40 таблиц. Сверять, что там он сдела, а чего не сделал - не стал.

2) После этого Базу Сайта 1 экспортировал и залил в Базу для Сайта 2.

3) Зашёл на сайт 2 - вуаля всё заработало, зашёл под первым пользователем. созданным через Сайт 1 в админку.

Теперь мысли по этому поводу.

Дамп пустой базы Сайта 1 я буду хранить, так как если захочется ещё один сайт в связку добавить, то придётся снова вручную всё создавать.

Видимо install.php в Drupal 6 недоработанный, я так вот своим обывательским взглядом понял, что схема базы изменилась, а скрипт - не до конца.

Вера в создателей 6 версии дрпала очень сильно пошатнулась. Ну уж о мультисайтинге столько говорится, а тут оказывается всё в таком запущенном состоянии находится.

Аватар пользователя Atl Atl 26 октября 2008 в 15:33

Взаимно.
В кратчайший срок тоже попробую.
А вот вопросец? А стоит ли хранить базу основного сайта? Ведь когда пойдет работа в мультисайтинге она изменится.
Получается, что хранить не надо. Перед новой установкой очередного N-го подсайта, импортируем базу основного (на последний момент времени) и т.д.
Есть только один способ в этом убедиться - попробовать. :))))))))))

Аватар пользователя Atl Atl 26 октября 2008 в 15:31

У меня еще вот какая фигня получается.
Когда в модуле "Сейчас на сайте" стоит большое время, то отображается один и тот же пользователь много раз.
Если сделать время обновления меньше, то такого, конечно, происходить не будет, но тогда чаще обращение будет происходить.
Как бы вырубить дублирование?

Аватар пользователя Atl Atl 30 октября 2008 в 13:23

Поставил. Все встало шоколадно. Но пошла ругань на ошибки в модулях и тема оформления отсутствовала напрочь.
Закинул модули, темы, заапдейтил, закронил и все устаканилось.