We're using postgresql 9.1.2 and for whatever reason auto ddl generation is not working. So I converted the mysql5.sql file in docs/scripts/ddl for use with postgresql.

I did this by installing mysql, creating a matterhorn db, and then importing the mysql5.sql file:

mysql -p -u YOURUSER matterhorn < mysql5.sql

Then I dumped the database using mysqldump and telling it to only dump tables:

mysqldump -u YOURUSER -p -d matterhorn > matterhornout.sql

Then I used a perl module named SQL-Translator to convert it:
http://search.cpan.org/~jrobinson/SQL-Translator-0.11010/

sqlt -f MySQL -t PostgreSQL matterhornout.sql > pg.sql

From there I edited pg.sql and changed all references to "smallint DEFAULT 0" to "boolean"

I also made the table "SEQUENCE" and all of its members lowercase. The uppercase names were causing issues. I'm not sure why, it could be because SEQUENCE is a reserved word?

I added the INSERT statement to populate the sequence table.

Finally I disabled auto ddl in config.properties.

I haven't done extensive testing, but matterhorn appears to fire up and populate the tables just fine. I see no db errors in the postgres logs or in the opencast logs.

The result is below:

--
-- Created by SQL::Translator::Producer::PostgreSQL
-- Created on Wed Jan 11 14:13:05 2012
--
--
-- Table: sequence
--
CREATE TABLE "sequence" (
  "SEQ_NAME" character varying(50) NOT NULL,
  "SEQ_COUNT" numeric(38,0) DEFAULT NULL,
  PRIMARY KEY ("SEQ_NAME")
);

--
-- Table: annotation
--
CREATE TABLE "annotation" (
  "id" bigint NOT NULL,
  "outpoint" bigint DEFAULT NULL,
  "inpoint" bigint DEFAULT NULL,
  "mediapackage_id" character varying(36) DEFAULT NULL,
  "session_id" text,
  "created" timestamp DEFAULT NULL,
  "user_id" text,
  "length" bigint DEFAULT NULL,
  "annotation_value" text,
  "annotation_type" text,
  PRIMARY KEY ("id")
);

--
-- Table: capture_agent_role
--
CREATE TABLE "capture_agent_role" (
  "id" character varying(255) NOT NULL,
  "organization" character varying(255) NOT NULL,
  "role" character varying(255) DEFAULT NULL
);

--
-- Table: capture_agent_state
--
CREATE TABLE "capture_agent_state" (
  "organization" character varying(255) NOT NULL,
  "id" character varying(255) NOT NULL,
  "configuration" text,
  "state" text NOT NULL,
  "last_heard_from" bigint NOT NULL,
  "url" text,
  PRIMARY KEY ("organization", "id")
);

--
-- Table: dictionary
--
CREATE TABLE "dictionary" (
  "text" character varying(255) NOT NULL,
  "language" character varying(255) NOT NULL,
  "weight" numeric(8,2) DEFAULT NULL,
  "count" bigint DEFAULT NULL,
  "stop_word" boolean,
  PRIMARY KEY ("text", "language")
);

--
-- Table: host_registration
--
CREATE TABLE "host_registration" (
  "id" bigint NOT NULL,
  "host" character varying(255) NOT NULL,
  "maintenance" boolean NOT NULL,
  "max_jobs" bigint NOT NULL,
  "online" boolean NOT NULL,
  PRIMARY KEY ("id"),
  CONSTRAINT "UNQ_host_registration_0" UNIQUE ("host")
);
CREATE INDEX "IX_host_registration_UNQ_host_registration_0" on "host_registration" ("host");

--
-- Table: job
--
CREATE TABLE "job" (
  "id" bigint NOT NULL,
  "status" bigint DEFAULT NULL,
  "payload" text,
  "date_started" timestamp DEFAULT NULL,
  "run_time" bigint DEFAULT NULL,
  "creator" text NOT NULL,
  "instance_version" bigint DEFAULT NULL,
  "date_completed" timestamp DEFAULT NULL,
  "operation" text,
  "is_dispatchable" boolean,
  "organization" text NOT NULL,
  "date_created" timestamp DEFAULT NULL,
  "queue_time" bigint DEFAULT NULL,
  "creator_service" bigint DEFAULT NULL,
  "parent_id" bigint DEFAULT NULL,
  "processor_svc" bigint DEFAULT NULL,
  "root_id" bigint DEFAULT NULL,
  PRIMARY KEY ("id")
);
CREATE INDEX "FK_job_creator_service" on "job" ("creator_service");
CREATE INDEX "FK_job_parent_id" on "job" ("parent_id");
CREATE INDEX "FK_job_processor_svc" on "job" ("processor_svc");
CREATE INDEX "FK_job_root_id" on "job" ("root_id");

--
-- Table: job_arguments
--
CREATE TABLE "job_arguments" (
  "id" bigint NOT NULL,
  "argument" text,
  "list_index" bigint DEFAULT NULL,
  CONSTRAINT "UNQ_job_arguments_0" UNIQUE ("id", "list_index")
);
CREATE INDEX "IX_job_arguments_UNQ_job_arguments_0" on "job_arguments" ("id", "list_index");

--
-- Table: matterhorn_role
--
CREATE TABLE "matterhorn_role" (
  "username" character varying(255) NOT NULL,
  "organization" character varying(255) NOT NULL,
  "role" text
);

--
-- Table: matterhorn_user
--
CREATE TABLE "matterhorn_user" (
  "username" character varying(255) NOT NULL,
  "organization" character varying(255) NOT NULL,
  "password" text,
  PRIMARY KEY ("username", "organization")
);

--
-- Table: scheduled_event
--
CREATE TABLE "scheduled_event" (
  "event_id" bigint NOT NULL,
  "capture_agent_metadata" text,
  "dublin_core" text,
  PRIMARY KEY ("event_id")
);

--
-- Table: series
--
CREATE TABLE "series" (
  "organization_id" character varying(128) NOT NULL,
  "series_id" character varying(128) NOT NULL,
  "access_control" text,
  "dublin_core" text,
  PRIMARY KEY ("organization_id", "series_id")
);

--
-- Table: service_registration
--
CREATE TABLE "service_registration" (
  "id" bigint NOT NULL,
  "job_producer" boolean NOT NULL,
  "path" text NOT NULL,
  "service_type" character varying(255) NOT NULL,
  "online" boolean NOT NULL,
  "host_registration" bigint DEFAULT NULL,
  PRIMARY KEY ("id"),
CONSTRAINT "UNQ_service_registration_0" UNIQUE ("host_registration", "service_type")
);
CREATE INDEX "IX_service_registration_UNQ_service_registration_0" on "service_registration" ("host_registration", "service_type");

--
-- Table: upload
--
CREATE TABLE "upload" (
  "id" character varying(255) NOT NULL,
  "total" bigint NOT NULL,
  "received" bigint NOT NULL,
  "filename" text NOT NULL,
  PRIMARY KEY ("id")
);

--
-- Table: user_action
--
CREATE TABLE "user_action" (
  "id" bigint NOT NULL,
  "user_ip" text,
  "outpoint" bigint DEFAULT NULL,
  "inpoint" bigint DEFAULT NULL,
  "mediapackage_id" text,
  "session_id" text,
  "created" timestamp DEFAULT NULL,
  "user_id" text,
  "length" bigint DEFAULT NULL,
  "type" text,
  "is_playing" boolean,
  PRIMARY KEY ("id")
);

INSERT INTO sequence (seq_name, seq_count) values ('SEQ_GEN',0);
-- 
-- Created by SQL::Translator::Producer::PostgreSQL
-- Created on Wed Jan 11 14:13:05 2012
-- 
--
-- Table: sequence
--
CREATE TABLE "sequence" (
  "seq_name" character varying(50) NOT NULL,
  "seq_count" numeric(38,0) DEFAULT NULL,
  PRIMARY KEY ("seq_name")
);

--
-- Table: annotation
--
CREATE TABLE "annotation" (
  "id" bigint NOT NULL,
  "outpoint" bigint DEFAULT NULL,
  "inpoint" bigint DEFAULT NULL,
  "mediapackage_id" character varying(36) DEFAULT NULL,
  "session_id" text,
  "created" timestamp DEFAULT NULL,
  "user_id" text,
  "length" bigint DEFAULT NULL,
  "annotation_value" text,
  "annotation_type" text,
  PRIMARY KEY ("id")
);

--
-- Table: capture_agent_role
--
CREATE TABLE "capture_agent_role" (
  "id" character varying(255) NOT NULL,
  "organization" character varying(255) NOT NULL,
  "role" character varying(255) DEFAULT NULL
);

--
-- Table: capture_agent_state
--
CREATE TABLE "capture_agent_state" (
  "organization" character varying(255) NOT NULL,
  "id" character varying(255) NOT NULL,
  "configuration" text,
  "state" text NOT NULL,
  "last_heard_from" bigint NOT NULL,
  "url" text,
  PRIMARY KEY ("organization", "id")
);

--
-- Table: dictionary
--
CREATE TABLE "dictionary" (
  "text" character varying(255) NOT NULL,
  "language" character varying(255) NOT NULL,
  "weight" numeric(8,2) DEFAULT NULL,
  "count" bigint DEFAULT NULL,
  "stop_word" boolean,
  PRIMARY KEY ("text", "language")
);

--
-- Table: host_registration
--
CREATE TABLE "host_registration" (
  "id" bigint NOT NULL,
  "host" character varying(255) NOT NULL,
  "maintenance" boolean NOT NULL,
  "max_jobs" bigint NOT NULL,
  "online" boolean NOT NULL,
  PRIMARY KEY ("id"),
  CONSTRAINT "UNQ_host_registration_0" UNIQUE ("host")
);
CREATE INDEX "IX_host_registration_UNQ_host_registration_0" on 
"host_registration" ("host");

--
-- Table: job
--
CREATE TABLE "job" (
  "id" bigint NOT NULL,
  "status" bigint DEFAULT NULL,
  "payload" text,
  "date_started" timestamp DEFAULT NULL,
  "run_time" bigint DEFAULT NULL,
  "creator" text NOT NULL,
  "instance_version" bigint DEFAULT NULL,
  "date_completed" timestamp DEFAULT NULL,
  "operation" text,
  "is_dispatchable" boolean,
  "organization" text NOT NULL,
  "date_created" timestamp DEFAULT NULL,
  "queue_time" bigint DEFAULT NULL,
  "creator_service" bigint DEFAULT NULL,
  "parent_id" bigint DEFAULT NULL,
  "processor_svc" bigint DEFAULT NULL,
  "root_id" bigint DEFAULT NULL,
  PRIMARY KEY ("id")
);
CREATE INDEX "FK_job_creator_service" on "job" ("creator_service");
CREATE INDEX "FK_job_parent_id" on "job" ("parent_id");
CREATE INDEX "FK_job_processor_svc" on "job" ("processor_svc");
CREATE INDEX "FK_job_root_id" on "job" ("root_id");

--
-- Table: job_arguments
--
CREATE TABLE "job_arguments" (
  "id" bigint NOT NULL,
  "argument" text,
  "list_index" bigint DEFAULT NULL,
  CONSTRAINT "UNQ_job_arguments_0" UNIQUE ("id", "list_index")
);
CREATE INDEX "IX_job_arguments_UNQ_job_arguments_0" on "job_arguments" ("id", 
"list_index");

--
-- Table: matterhorn_role
--
CREATE TABLE "matterhorn_role" (
  "username" character varying(255) NOT NULL,
  "organization" character varying(255) NOT NULL,
  "role" text
);

--
-- Table: matterhorn_user
--
CREATE TABLE "matterhorn_user" (
  "username" character varying(255) NOT NULL,
  "organization" character varying(255) NOT NULL,
  "password" text,
  PRIMARY KEY ("username", "organization")
);

--
-- Table: scheduled_event
--
CREATE TABLE "scheduled_event" (
  "event_id" bigint NOT NULL,
  "capture_agent_metadata" text,
  "dublin_core" text,
  PRIMARY KEY ("event_id")
);

--
-- Table: series
--
CREATE TABLE "series" (
  "organization_id" character varying(128) NOT NULL,
  "series_id" character varying(128) NOT NULL,
  "access_control" text,
  "dublin_core" text,
  PRIMARY KEY ("organization_id", "series_id")
);

--
-- Table: service_registration
--
CREATE TABLE "service_registration" (
  "id" bigint NOT NULL,
  "job_producer" boolean NOT NULL,
  "path" text NOT NULL,
  "service_type" character varying(255) NOT NULL,
  "online" boolean NOT NULL,
  "host_registration" bigint DEFAULT NULL,
  PRIMARY KEY ("id"),
  CONSTRAINT "UNQ_service_registration_0" UNIQUE ("host_registration", 
"service_type")
);
CREATE INDEX "IX_service_registration_UNQ_service_registration_0" on 
"service_registration" ("host_registration", "service_type");

--
-- Table: upload
--
CREATE TABLE "upload" (
  "id" character varying(255) NOT NULL,
  "total" bigint NOT NULL,
  "received" bigint NOT NULL,
  "filename" text NOT NULL,
  PRIMARY KEY ("id")
);

--
-- Table: user_action
--
CREATE TABLE "user_action" (
  "id" bigint NOT NULL,
  "user_ip" text,
  "outpoint" bigint DEFAULT NULL,
  "inpoint" bigint DEFAULT NULL,
  "mediapackage_id" text,
  "session_id" text,
  "created" timestamp DEFAULT NULL,
  "user_id" text,
  "length" bigint DEFAULT NULL,
  "type" text,
  "is_playing" boolean,
  PRIMARY KEY ("id")
);

INSERT INTO sequence (seq_name, seq_count) values ('SEQ_GEN',0);
_______________________________________________
Matterhorn-users mailing list
[email protected]
http://lists.opencastproject.org/mailman/listinfo/matterhorn-users

Reply via email to