Drupal China
有些网络主机限制了客户只能拥有一个数据库,因此需要不能重复的表名。即使在这种情况下,管理员仍可以使用Drupal,甚至可以安多个Drupal,因为Drupal提供了表名前缀(table prefix)功能。
为了使用这项功能,你必须首先编辑脚本database/database.x,以创建带有你的前缀字串的数据库表。如果你要安装附加模块,你也需要修改数据库脚本里的INSERT和REPLACE语句来加上前缀(译注:Drupal 4.7模块自带的Install文件无需修改)。例如,改变以下格式的所有语句从:
CREATE TABLE access
INSERT INTO system VALUES
('modules/filter.module','filter','module','',1,0,0);
变成
CREATE TABLE dr1_access
INSERT INTO dr1_system VALUES
('modules/filter.module','filter','module','',1,0,0);
然后使用dr1_(举例)作为$db_prefix的值,写入到
sites/example.com/settings.php文件中。
你也可以使用脚本来自动完成这项工作,你可以同时更新多个站点,使用(bash shell)的命令行:
for F in '' prefix1 prefix2; do \
for S in 'find ./modules --name \*mysql'; do \
scripts/dbprefix.sh $F < $S | grep -v DROP |\
mysql -h DBHOST -u DBUSER -pPASSWD DATABASE; \
done;
done这里还有一个PHP脚本,用于为/drupal/sites/*下的所有站点创建所有数据库表,可以在DRUPAL-4-6下工作,访问数据库表创建脚本问题以获取更多信息。
如果你想在多个站点间共享用户,你需要按照下面的格式设置$db_prefix变量:
<?php
$db_prefix
= array(
'default' => 'thissite_',
'authmap' => 'shared_',
'profile_fields' => 'shared_',
'profile_values' => 'shared_',
'role' => 'shared_',
'sequences' => 'shared_',
'sessions' => 'shared_',
'users' => 'shared_',
'users_roles' => 'shared_',
'users_uid_seq' => 'shared_', // 用于pgsql
);
?>
最新评论
2010-03-17 00:17:42
2010-03-16 21:16:59
2010-03-16 19:16:29
2010-03-16 16:16:04
2010-03-16 16:16:29
2010-03-16 15:16:12
2010-03-16 15:16:45
2010-03-16 14:16:40
2010-03-16 12:16:55
2010-03-16 12:16:17