我想将Drupal连接到外部数据库,我需要指定架构,否则Drupal架构模块默认连接' public'架构。我尝试了以下代码,但没有成功:
$databases['conservation']['default'] = array(
'database' => 'conservation',
'schema' => 'projects_test1',
'username' => 'xxxxxxxxxxx',
'password' => 'xxx',
'host' => 'xxx.xxx.xxx',
'port' => '5432',
'driver' => 'pgsql',
'prefix' => array(
'default' => 'projects_test1.',
'users' => 'shared.',
'sessions' => 'shared.',
'role' => 'shared.',
'authmap' => 'shared.',
)
);
我做了一些谷歌搜索,但还没有找到任何人试图这样做。 谢谢 卢卡
答案 0 :(得分:0)
您可以尝试使用以下代码将Drupal站点连接到外部数据库:
$databases['conservation']['default'] = array(
'database' => 'conservation',
'username' => 'xxxxxxxxxxx',
'password' => 'xxx',
'host' => 'xxx.xxx.xxx',
'port' => '5432',
'driver' => 'pgsql',
'prefix' => array(
'default' => 'projects_test1.',
'users' => 'shared.',
'sessions' => 'shared.',
'role' => 'shared.',
'authmap' => 'shared.',
)
);
上面的代码指定了Drupal的保护DB配置。因此,当您需要在模块中查询此其他数据库时,必须使用此函数切换与其的连接
<?php
db_set_active('your_other_db');
?>
完成后,您必须关闭它并恢复到默认数据库连接,以便Drupal能够访问其数据
<?php
db_set_active();
?>