MountLion 发表于 2012-9-24 14:04:38

在Oracle数据库上安装TestLink

最近研究testlink,看能不能替代公司的QC。由于公司提供了完善的Oracle数据库基础服务,所以我打算把testlink安装到Oracle库上。经过几天零敲零打,终于安装成功了。特此记录。

Testlink版本:1.9

Oracle版本:10g

PHP5.3

Apache2.2

OS:windows 2003

下载安装Apache、PHP。
修改PHP的default charSet=UTF8(没有连字符),修改temp目录。
下载解压testlink,修改config.inc.php,字符编码修改为UTF-8(注意连字符)。
修改Apache的配置文件,增加alias和Directory设置(alias /testlink "path/to/testlink")。
修改testlink/install/sql,把postgres目录拷贝为oracle目录,按oracle语法修改里面的两个sql文件。
把BIGINT、SMALLINT、INT都改成INTEGER;BIGSERIAL和SETIAL也改为INTEGER,但要同时建sequence(表名_id_seq)和insert触发器。触发器的逻辑是:每次都select sequence.nextval,但如果插入语句提供了id,就使用插入语句的id,否则使用序列值。

把TEXT类型改为CLOB类型,BYTES类型改为BLOB;TIMESTAMP改为DATE(否则日期均显示为1970-01-01)。

把所有的NOT NULL约束去掉!否则运行会出错。
调换default子句和约束子句。
把字段名的双引号去掉。
把太长的索引名改短。
初始化数据的sql文件中把setval语句去掉。但要注意有一个序列roles_id_seq需要设大。
按照安装文档,手工生成config_db.inc.php,注意数据库类型选择“oci8”,主机名后要加":端口",数据库名需要写作“SID=your_sid”,前面四个字符必须是“SID=”。这个东西差不多耗了我一天!文档语焉不详,php语法不熟,又没有调试工具,全靠加打印语句一点一点摸出来的啊。
修改lib/functions/database.class.php,fetch_array方法需要修改:case "oci8":把fields的所有key改为小写。
至此修改完成!访问http://hostname/testlink/index.php即可。
页: [1]
查看完整版本: 在Oracle数据库上安装TestLink