conf/evolutions/default/1.sql (123 lines of code) (raw):
# -- !Ups
CREATE TABLE "StorageEntry" (
id INTEGER NOT NULL PRIMARY KEY,
S_ROOT_PATH CHARACTER VARYING,
S_CLIENT_PATH CHARACTER VARYING,
S_STORAGE_TYPE CHARACTER VARYING NOT NULL,
S_USER CHARACTER VARYING,
S_PASSWORD CHARACTER VARYING,
S_HOST CHARACTER VARYING,
I_PORT SMALLINT
);
CREATE SEQUENCE "StorageEntry_id_seq"
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
ALTER SEQUENCE "StorageEntry_id_seq" OWNED BY "StorageEntry".id;
ALTER TABLE public."StorageEntry_id_seq" OWNER TO projectlocker;
ALTER TABLE "StorageEntry" OWNER TO "projectlocker";
--------------------------------------------------
CREATE TABLE "ProjectType" (
id INTEGER NOT NULL PRIMARY KEY,
S_NAME CHARACTER VARYING NOT NULL,
S_OPENS_WITH CHARACTER VARYING NOT NULL,
S_TARGET_VERSION CHARACTER VARYING NOT NULL
);
CREATE SEQUENCE "ProjectType_id_seq"
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
ALTER SEQUENCE "ProjectType_id_seq" OWNED BY "ProjectType".id;
ALTER TABLE public."ProjectType_id_seq" OWNER TO projectlocker;
ALTER TABLE "ProjectType" OWNER TO "projectlocker";
-------------------------------------------------
CREATE TABLE "FileEntry" (
id INTEGER NOT NULL PRIMARY KEY,
S_FILEPATH CHARACTER VARYING NOT NULL,
K_STORAGE_ID INTEGER NOT NULL,
I_VERSION INTEGER NOT NULL,
S_USER CHARACTER VARYING NOT NULL,
T_CTIME TIMESTAMP WITH TIME ZONE NOT NULL,
T_MTIME TIMESTAMP WITH TIME ZONE NOT NULL,
T_ATIME TIMESTAMP WITH TIME ZONE NOT NULL,
B_HAS_CONTENT BOOLEAN NOT NULL DEFAULT FALSE,
B_HAS_LINK BOOLEAN NOT NULL DEFAULT FALSE
);
CREATE SEQUENCE "FileEntry_id_seq"
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
ALTER SEQUENCE "FileEntry_id_seq" OWNED BY "FileEntry".id;
ALTER TABLE public."FileEntry_id_seq" OWNER TO projectlocker;
ALTER TABLE "FileEntry" OWNER TO "projectlocker";
CREATE UNIQUE INDEX IX_PATH_STORAGE ON "FileEntry" (S_FILEPATH, K_STORAGE_ID);
ALTER TABLE "FileEntry" ADD CONSTRAINT "fk_storage" FOREIGN KEY (K_STORAGE_ID) REFERENCES "StorageEntry"(id) DEFERRABLE INITIALLY DEFERRED;
------------------------------------------------------
CREATE TABLE "ProjectTemplate" (
id INTEGER NOT NULL PRIMARY KEY,
S_NAME CHARACTER VARYING NOT NULL,
K_PROJECT_TYPE INTEGER NOT NULL,
K_FILE_REF INTEGER NOT NULL
);
CREATE SEQUENCE "ProjectTemplate_id_seq"
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
ALTER SEQUENCE "ProjectTemplate_id_seq" OWNED BY "ProjectTemplate".id;
ALTER TABLE public."ProjectTemplate_id_seq" OWNER TO projectlocker;
ALTER TABLE "ProjectTemplate" OWNER TO "projectlocker";
CREATE UNIQUE INDEX IX_TEMPLATE_NAME on "ProjectTemplate" (S_NAME);
ALTER TABLE "ProjectTemplate" ADD CONSTRAINT FK_PROJECT_TYPE FOREIGN KEY (K_PROJECT_TYPE) REFERENCES "ProjectType"(id) DEFERRABLE INITIALLY DEFERRED;
ALTER TABLE "ProjectTemplate" ADD CONSTRAINT FK_FILE_REF FOREIGN KEY (K_FILE_REF) REFERENCES "FileEntry"(id) DEFERRABLE INITIALLY DEFERRED;
---------------------------------------------------
CREATE TABLE "ProjectEntry" (
id INTEGER NOT NULL PRIMARY KEY,
K_PROJECT_TYPE INTEGER NOT NULL,
S_VIDISPINE_ID CHARACTER VARYING NULL,
S_TITLE CHARACTER VARYING NOT NULL,
T_CREATED TIMESTAMP WITH TIME ZONE NOT NULL,
S_USER CHARACTER VARYING NOT NULL
);
CREATE SEQUENCE "ProjectEntry_id_seq"
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
ALTER TABLE public."ProjectEntry_id_seq" OWNER TO projectlocker;
ALTER SEQUENCE "ProjectEntry_id_seq" OWNED BY "ProjectEntry".id;
ALTER TABLE "ProjectEntry" OWNER TO "projectlocker";
ALTER TABLE "ProjectEntry" ADD CONSTRAINT FK_PROJECT_TYPE FOREIGN KEY (K_PROJECT_TYPE) REFERENCES "ProjectType"(id) DEFERRABLE INITIALLY DEFERRED;
----------------------------------------------------
CREATE TABLE "ProjectFileAssociation" (
id INTEGER NOT NULL PRIMARY KEY,
K_PROJECT_ENTRY INTEGER NOT NULL,
K_FILE_ENTRY INTEGER NOT NULL
);
CREATE SEQUENCE "ProjectFileAssociation_id_seq"
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
ALTER SEQUENCE "ProjectFileAssociation_id_seq" OWNED BY "ProjectFileAssociation".id;
ALTER TABLE public."ProjectFileAssociation_id_seq" OWNER TO projectlocker;
ALTER TABLE "ProjectFileAssociation" OWNER TO "projectlocker";
ALTER TABLE "ProjectFileAssociation" ADD CONSTRAINT FK_PROJECT_ENTRY FOREIGN KEY (K_PROJECT_ENTRY) REFERENCES "ProjectEntry"(id) DEFERRABLE INITIALLY DEFERRED;
ALTER TABLE "ProjectFileAssociation" ADD CONSTRAINT FK_FILE_ENTRY FOREIGN KEY (K_FILE_ENTRY) REFERENCES "FileEntry"(id) DEFERRABLE INITIALLY DEFERRED;
--------------------------------------------------
ALTER TABLE ONLY "FileEntry" ALTER COLUMN id SET DEFAULT nextval('"FileEntry_id_seq"'::regclass);
ALTER TABLE ONLY "ProjectEntry" ALTER COLUMN id SET DEFAULT nextval('"ProjectEntry_id_seq"'::regclass);
ALTER TABLE ONLY "ProjectFileAssociation" ALTER COLUMN id SET DEFAULT nextval('"ProjectFileAssociation_id_seq"'::regclass);
ALTER TABLE ONLY "ProjectTemplate" ALTER COLUMN id SET DEFAULT nextval('"ProjectTemplate_id_seq"'::regclass);
ALTER TABLE ONLY "ProjectType" ALTER COLUMN id SET DEFAULT nextval('"ProjectType_id_seq"'::regclass);
ALTER TABLE ONLY "StorageEntry" ALTER COLUMN id SET DEFAULT nextval('"StorageEntry_id_seq"'::regclass);
---------------------------------------------------
# -- !Downs
DROP TABLE "ProjectFileAssociation" CASCADE;
DROP TABLE "ProjectEntry" CASCADE;
DROP TABLE "ProjectTemplate" CASCADE;
DROP TABLE "FileEntry" CASCADE;
DROP TABLE "ProjectType" CASCADE;
DROP TABLE "StorageEntry" CASCADE;