Drupal: Подключение и использование нескольких баз

Опубликовано: 09.10.2017

видео Drupal: Подключение и использование нескольких баз

Как установить сайт на денвер (установка сайта на локальный компьютер)

Здравствуйте.


Мультиязычный сайт на WordPress. Плагин Polylang. Часть первая. Настройка и установка

Сегодня я коснусь вопроса подключения нескольких баз данных в системе Drupal 7 . Почему именно Drupal 7? Да потому, что в ней стало очень просто это делать, встроенными средствами системы. То есть мы можем подключить в системе одновременно несколько баз и использовать их в процессе работы. Один из примеров такой работы - это модуль  DBTNG , который позволяет мигрировать структуру и данные между различными базами данных (к примеру с SQLite на MySQL). Также возможно использовать базы данных, созданные не для CMS Drupal. В этой статье мы рассмотрим как подключить две базы, а также как с ними работать.

Подключаем две базы

Реадктируем файл settings.php в папке sites/default

<?php $databases = array (   'default' =>   array (     'default' =>     array (       'database' => 'drupal1',       'username' => 'root',       'password' => '<ваш-пароль>',       'host' => 'localhost',       'port' => '',       'driver' => 'mysql',       'prefix' => '',     ),   ),'custom' =>   array (     'default' =>     array (       'database' => 'drupal2',       'username' => 'root',       'password' => '<ваш-пароль>',       'host' => 'localhost',       'port' => '',       'driver' => 'mysql',       'prefix' => '',     )   ) ); ?>

Используем базы в своем коде

Используем подключенные базы в коде своего модуля или темы. В процессе работы Drupal использует конфигурацию default . Таким образом, если нам нужно использовать базу, подключенную вручную, мы делаем активной требуемую конфигурацию и выполняем нужные операции.

<?php db_set_active('custom'); $result = db_query("SELECT nid, title, created FROM {node} ORDER BY created ASC LIMIT 0, 10"); // $result содержит данные запроса к базе данных, подключенной вручную db_set_active('default'); $result = db_query("SELECT nid, title, created FROM {node} ORDER BY created ASC LIMIT 0, 10"); // $result содержит данные запроса к основной базе drupal 7 ?>

Теперь мы сможем подключать базы данных других систем (Wordpress, Joomla! и т.д.)

rss