Привет!
Возник у меня внезапно вот такой вопрос.
Есть Друпал 7, смотрит на таблички с префиксом drupal.
Есть данные, в той же базе, хранятся в табличках с префиксом data.
Естественно, db_select таблички с префиксом data не видит и пытается доставить им префикс drupal.
Вопрос в том, как сделать так, чтоб db_select их "увидела"?
Где-то можно найти, что она там в массив $options принимает?
Вопрос из чистого любопытства, ибо решить эту задачу можно несколькими способами.
Комментарии
А прописать префиксы в settings.php не?
Там в таблице просто данные, добавленные специальной программой, не друпаловские сущности.
и?
подрубить вторую "базу" через db_set_active без префикса.
Куда нужный префикс прописать?
'default' => 'main_',
'users' => 'shared_',
'sessions' => 'shared_',
'role' => 'shared_',
'authmap' => 'shared_',
),
Это не спортивно
Вероятно в этот массив, комментариев рядом с ним не замечаете?
Из комментариев не понятно, как прописать таблицы, о которых Друпал слыхом не слыхивал.
Предлагаете в 'default' => 'my_prefix'?
Или как-то можно свою секцию для префиса определить, например 'my_data' => 'my_prefix'?
Если есть таблицы:
d7__users
d7__node
... (остальные таблицы drupal 7)
data_table1
data_table2
prefix2_table3
то в settings.php нужно прописать:
<?php
$databases['default']['default'] = array(
'driver' => 'mysql',
'database' => 'databasename',
'username' => 'username',
'password' => 'password',
'host' => 'localhost',
'prefix' => array(
'default' => 'd7__',
'table1' => 'data_',
'table2' => 'data_',
'table3' => 'prefix2_',
),
'collation' => 'utf8_general_ci',
);
?>
! это касаемо, если все таблицы в одной БД лежат.
Да, спасибо, уже разобрался.
Я сначала решил, что там можно только те таблицы прописывать, что у Друпала при установке есть.
более подробный материал по префиксам Настройки подключения баз данных в Drupal 7
Спасибо, статья отличная!