Gossamer Forum
Home : Products : Gossamer Forum : Discussion :

oracle problem during setup

Quote Reply
oracle problem during setup
Hi --

I'm trying to get gossamer forums installed against an oracle database and I'm running into some problems.

First, I'm unable to connect unless I modify the create_dsn subroutine in ORACLE.pm:

as installed, it creates a dsn like
...host=myhost:myport...
but I got errors unless I changed it to:
...host=myhost;port=myport

Next, once I'm able to successfully connect to the oracle db, I run into an error as the setup script creates and populates the various tables, etc. The error I get is a result of an attempted insert into a table that doesn't exist. Looking at debug output, it seems to me that the _create_sql subroutine from ORACLE.pm isn't being used; the sql that gets created is not valid for an oracle database. Here's an example - note that it includes the AUTO_INCREMENT keyword and an INDEX clause, neither of which work in oracle:

CREATE TABLE gforum_ForumBan (
ban_id NUMBER(38) NOT NULL AUTO_INCREMENT,
forum_id_fk NUMBER(38) NOT NULL,
ban_type VARCHAR(10) NOT NULL,
user_id_fk NUMBER(38) NOT NULL,
ban_ip VARCHAR(15) NOT NULL,
ban_reason CLOB DEFAULT '' NOT NULL,
ban_set NUMBER(38) NOT NULL,
ban_set_by_id NUMBER(38),
ban_set_by_username_deleted VARCHAR(50),
ban_expiry NUMBER(38),
INDEX fb_fu (forum_id_fk, user_id_fk),
INDEX fb_fb (forum_id_fk, ban_ip),
PRIMARY KEY (ban_id)
)

The _create_sql subroutine in the ORACLE.pm driver doesn't produce SQL like the above - it creates separate CREATE INDEX statements. So somehow, the oracle driver's _create_sql isn't being used.

Has anyone else run into something like this? Any ideas?

Thanks --
Colin Murtaugh