Пытаюсь разделить базу данных сайта, чтобы подготовить его к мультисайдингу. Есть сайт на поддомене и у него база mast4_master с префиксом сool_ . Вынесла таблицы с пользователями в отдельную базу mast4_common, но сайт к ним не обращается. Может кто-нибудь подсказать, что сделано неправильно?
$db_prefix = array(
'default' => 'mast4_master.сool_',
'users' => 'mast4_common.',
'sessions' => 'mast4_common.',
'authmap' => 'mast4_common.',
);
$db_url = 'mysql://user:парольlocalhost/mast4_master';
$db_prefix = 'сool_';
Пишет что-то такое:
Warning: Table 'mast4_master.сool_users' doesn't exist query: SELECT u.*, s.* FROM сool_users u INNER JOIN сool_sessions s ON u.uid = s.uid WHERE s.sid ...
Комментарии
Попробуйте написать
$db_url = 'mysql://user:парольlocalhost/mast4_master';
$db_prefix = array(
'default' => 'mast4_master.сool_',
'users' => 'mast4_common.сool_',
'sessions' => 'mast4_common.сool_',
'authmap' => 'mast4_common.сool_',
);
а сторчку
$db_prefix = 'сool_'; убрать.
ИМХО должно заработать. Ну и убедиться в наличии нужных таблиц с нужными префиксами в нужных базах.
Нет, к сожалению и такой вариант не сработал. Ту же надпись выводит.
А кэш после разделения баз чистили?
Смотрим внимательно:
'users' => 'mast4_common.',
а в ошибке почему то эта таблица ищется не в базе mast4_common, а в mast4_master, где ее как я понимаю уже нет.
Поскольку в конфиге все прописано правильно, а сайт обращается к несуществующей в базе таблице, то нужно смотреть почему так происходит и в какой момент.
Скорее всего старая информация в кэше, но может быть какой нибудь дополнительный модуль, работающий с таблицей users некорректно работает с базой - я с подобным столкнулся с модулем computed_field, но он с данной таблицей точно не работает.