Можно ли читать drupal из базы данных sql? - PullRequest
2 голосов
/ 21 октября 2010

У меня есть сайт под drupal (использующий mysql), но мне нужно, чтобы он читал из внешней базы данных sql и делал запросы / отчеты, возможно, используя views2?

Возможно ли это вообще?Я искал решение, которое просто часами считывало (а не импортировало тысячи записей ...) из внешней базы данных и не было уверено, возможно ли это вообще.

Ответы [ 3 ]

4 голосов
/ 21 октября 2010

Drupal может обращаться к внешним базам данных, предполагая, что они являются одним из типов, поддерживаемых Drupal.

Я отправлю вас на эту страницу руководства: Как подключиться к нескольким базам данных в Drupal .

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

// Set Database API to use the other database.
db_set_active('external_db'); 

// Query the database.
db_query("SELECT * FROM {your_table} WHERE condition = 'value'");

// Set the Database API back to the default db.
db_set_active('default');

По сути, укажите базу данных на внешнюю базу данных, выполните чтение и запись и переключитесь обратно. Если вы забудете переключиться обратно, Drupal потерпит крах, поскольку его основные функции попытаются работать с базой данных, не относящейся к Drupal.

1 голос
/ 21 октября 2010

Можно определить несколько соединений с базой данных в вашем settings.php и использовать db_set_active, чтобы выбрать, какую базу данных использовать.

Если вы хотите сделать это с представлениями, вы можетенеобходимо выполнить дополнительную работу и встроить представление после установки активной базы данных во внешнюю.

0 голосов
/ 21 октября 2010

Без написания кода вы сможете создавать представления вторичной базы данных с помощью модуля Table Wizard . Однако, учитывая, как Drupal 6 обрабатывает свою абстракцию базы данных, для этого потребуется, чтобы вторичная база данных была того же типа, что и основная база данных Drupal (например, либо оба MySQL, либо оба Postgresql).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...