Drupal site kapcsolódása több adatbázishoz

Default book

Régi problémám, hogyan lehet Drupallal egy időben több adatbázishoz csatlakozni. Ez azért kérdés, mert előfordul az, hogy a Fejlesztő szét akarja választani a Drupal kódot az alkalmazás által kezelt kódtól, mert például nem akarja, hogy egy felhazsnáló, aki hozzáfér az adatokhoz, hozzáférjen a Drupal rendszer adataihoz is. A megoldást a settings.PHP tartalmazza egyfelől.
Amikor adatbázishoz kapcsolódunk, akkor az alábbi sort írjuk a setting.php-ban:

<?php
$db_url = 'MySQL://user:jelszo@localhost/rendszer';
?>

Ha több adatbázishoz akarunk kapcsolódni, akkor ezt módosítanunk kell úgy, hogy adatbázisaink egy tömbben legyenek, az alábbi módon:

<?php
$db_url['default'] = 'mysql://user:jelszo@localhost/rendszer';
$db_url['masikdb'] = 'mysql://user1:jelszo1pwd@localhost/masikdb';
?>

A Drupal mindig a default kapcsolathoz kapcsolódik futás közben!

Ha egy oldalon lekérdezést akarunk lefuttatni a másik adatbázison akkor először át kell állítani az aktív adatbázist a másikdb-re, lefuttatni a lekérdezést és kiértékelni, ahogyan kívánjuk, majd visszakapcsolni az aktív adatbázist a default kapcsolatra az alábbi módon:

<?php
db_set_active('masikdb');
db_query('SeleCT * FROM masikdb_tabla'; //visszakapcsolás
db_set_active('default');
?>

Sajnos a módszer nem működik akkor, ha az adatbázisaink különböző típusúak, tehát az alábbi nem használható:

<?php
$databases = array ("default" => "mysql://user:pass@host/db","second" => "pgsql://user:pass@host/db");
// ...
?>

Az adatbázis-kezelő rendszerek különbözősége miatt a Drupallal nem is lehet megvalósítani egyszerűen például az Oracle, SQLite vagy az MSSQL kapcsolatot. Bár nem próbáltam ki, de azért létezik megoldás - elméletileg: