Использование нескольких баз данных в Drupal

Тэги: 

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

И так, для начала введем данные о нашей дополнительной базе в файле settings.php:

  1. $databases = array (
  2. 'default' =>
  3. 'default' =>
  4. 'database' => 'drupal_base',
  5. 'username' => 'drupal_user',
  6. 'password' => 'drupal_pass',
  7. 'host' => 'localhost',
  8. 'port' => '',
  9. 'driver' => 'mysql',
  10. 'prefix' => '',
  11. ),
  12. ),'custom' =>
  13. 'default' =>
  14. 'database' => 'custom_base',
  15. 'username' => 'custom_user',
  16. 'password' => 'custom_pass',
  17. 'host' => 'localhost',
  18. 'port' => '',
  19. 'driver' => 'mysql',
  20. 'prefix' => '',
  21. )
  22. )
  23. );

Далее в своем модуле для переключения в другую базу данных используем следующий код:

  1. //переключаемся на дополнительную БД
  2. db_set_active('custom');
  3.  
  4. //работаем с дополнительной БД
  5. $result = db_query("SELECT some_field FROM {some_table}");
  6.  
  7. //далее после выполнения нужных нам запросов не забываем переключится в основную базу для корректной работы скриптов нашего сайта
  8. db_set_active('default');