mirror of
https://github.com/TheAnachronism/docspell.git
synced 2025-06-02 13:32:51 +00:00
Use separate sql migration for h2
This commit is contained in:
parent
06879456a6
commit
cb1a9e0699
@ -0,0 +1,210 @@
|
|||||||
|
CREATE TABLE "filemeta" (
|
||||||
|
"id" varchar(254) not null primary key,
|
||||||
|
"timestamp" varchar(40) not null,
|
||||||
|
"mimetype" varchar(254) not null,
|
||||||
|
"length" bigint not null,
|
||||||
|
"checksum" varchar(254) not null,
|
||||||
|
"chunks" int not null,
|
||||||
|
"chunksize" int not null
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE TABLE "filechunk" (
|
||||||
|
fileId varchar(254) not null,
|
||||||
|
chunkNr int not null,
|
||||||
|
chunkLength int not null,
|
||||||
|
chunkData bytea not null,
|
||||||
|
primary key (fileId, chunkNr)
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE TABLE "collective" (
|
||||||
|
"cid" varchar(254) not null primary key,
|
||||||
|
"state" varchar(254) not null,
|
||||||
|
"doclang" varchar(254) not null,
|
||||||
|
"created" timestamp not null
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE TABLE "user_" (
|
||||||
|
"uid" varchar(254) not null primary key,
|
||||||
|
"login" varchar(254) not null,
|
||||||
|
"cid" varchar(254) not null,
|
||||||
|
"password" varchar(254) not null,
|
||||||
|
"state" varchar(254) not null,
|
||||||
|
"email" varchar(254),
|
||||||
|
"logincount" int not null,
|
||||||
|
"lastlogin" timestamp,
|
||||||
|
"created" timestamp not null,
|
||||||
|
unique ("cid", "login"),
|
||||||
|
foreign key ("cid") references "collective"("cid")
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE TABLE "invitation" (
|
||||||
|
"id" varchar(254) not null primary key,
|
||||||
|
"created" timestamp not null
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE TABLE "source" (
|
||||||
|
"sid" varchar(254) not null primary key,
|
||||||
|
"cid" varchar(254) not null,
|
||||||
|
"abbrev" varchar(254) not null,
|
||||||
|
"description" text,
|
||||||
|
"counter" int not null,
|
||||||
|
"enabled" boolean not null,
|
||||||
|
"priority" int not null,
|
||||||
|
"created" timestamp not null,
|
||||||
|
unique ("cid", "abbrev"),
|
||||||
|
foreign key ("cid") references "collective"("cid")
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE TABLE "organization" (
|
||||||
|
"oid" varchar(254) not null primary key,
|
||||||
|
"cid" varchar(254) not null,
|
||||||
|
"name" varchar(254) not null,
|
||||||
|
"street" varchar(254),
|
||||||
|
"zip" varchar(254),
|
||||||
|
"city" varchar(254),
|
||||||
|
"country" varchar(254),
|
||||||
|
"notes" text,
|
||||||
|
"created" timestamp not null,
|
||||||
|
unique ("cid", "name"),
|
||||||
|
foreign key ("cid") references "collective"("cid")
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE TABLE "person" (
|
||||||
|
"pid" varchar(254) not null primary key,
|
||||||
|
"cid" varchar(254) not null,
|
||||||
|
"name" varchar(254) not null,
|
||||||
|
"street" varchar(254),
|
||||||
|
"zip" varchar(254),
|
||||||
|
"city" varchar(254),
|
||||||
|
"country" varchar(254),
|
||||||
|
"notes" text,
|
||||||
|
"concerning" boolean not null,
|
||||||
|
"created" varchar(30) not null,
|
||||||
|
unique ("cid", "name"),
|
||||||
|
foreign key ("cid") references "collective"("cid")
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE TABLE "contact" (
|
||||||
|
"contactid" varchar(254) not null primary key,
|
||||||
|
"value" varchar(254) not null,
|
||||||
|
"kind" varchar(254) not null,
|
||||||
|
"pid" varchar(254),
|
||||||
|
"oid" varchar(254),
|
||||||
|
"created" timestamp not null,
|
||||||
|
foreign key ("pid") references "person"("pid"),
|
||||||
|
foreign key ("oid") references "organization"("oid")
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE TABLE "equipment" (
|
||||||
|
"eid" varchar(254) not null primary key,
|
||||||
|
"cid" varchar(254) not null,
|
||||||
|
"name" varchar(254) not null,
|
||||||
|
"created" timestamp not null,
|
||||||
|
unique ("cid","eid"),
|
||||||
|
foreign key ("cid") references "collective"("cid")
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE TABLE "item" (
|
||||||
|
"itemid" varchar(254) not null primary key,
|
||||||
|
"cid" varchar(254) not null,
|
||||||
|
"name" varchar(254) not null,
|
||||||
|
"itemdate" timestamp,
|
||||||
|
"source" varchar(254) not null,
|
||||||
|
"incoming" boolean not null,
|
||||||
|
"state" varchar(254) not null,
|
||||||
|
"corrorg" varchar(254),
|
||||||
|
"corrperson" varchar(254),
|
||||||
|
"concperson" varchar(254),
|
||||||
|
"concequipment" varchar(254),
|
||||||
|
"inreplyto" varchar(254),
|
||||||
|
"duedate" timestamp,
|
||||||
|
"notes" text,
|
||||||
|
"created" timestamp not null,
|
||||||
|
"updated" timestamp not null,
|
||||||
|
foreign key ("inreplyto") references "item"("itemid"),
|
||||||
|
foreign key ("corrorg") references "organization"("oid"),
|
||||||
|
foreign key ("corrperson") references "person"("pid"),
|
||||||
|
foreign key ("concperson") references "person"("pid"),
|
||||||
|
foreign key ("concequipment") references "equipment"("eid"),
|
||||||
|
foreign key ("cid") references "collective"("cid")
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE TABLE "attachment" (
|
||||||
|
"attachid" varchar(254) not null primary key,
|
||||||
|
"itemid" varchar(254) not null,
|
||||||
|
"filemetaid" varchar(254) not null,
|
||||||
|
"position" int not null,
|
||||||
|
"created" timestamp not null,
|
||||||
|
"name" varchar(254),
|
||||||
|
foreign key ("itemid") references "item"("itemid"),
|
||||||
|
foreign key ("filemetaid") references "filemeta"("id")
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE TABLE "attachmentmeta" (
|
||||||
|
"attachid" varchar(254) not null primary key,
|
||||||
|
"content" text,
|
||||||
|
"nerlabels" text,
|
||||||
|
"itemproposals" text,
|
||||||
|
foreign key ("attachid") references "attachment"("attachid")
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE TABLE "tag" (
|
||||||
|
"tid" varchar(254) not null primary key,
|
||||||
|
"cid" varchar(254) not null,
|
||||||
|
"name" varchar(254) not null,
|
||||||
|
"category" varchar(254),
|
||||||
|
"created" timestamp not null,
|
||||||
|
unique ("cid", "name"),
|
||||||
|
foreign key ("cid") references "collective"("cid")
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE TABLE "tagitem" (
|
||||||
|
"tagitemid" varchar(254) not null primary key,
|
||||||
|
"itemid" varchar(254) not null,
|
||||||
|
"tid" varchar(254) not null,
|
||||||
|
unique ("itemid", "tid"),
|
||||||
|
foreign key ("itemid") references "item"("itemid"),
|
||||||
|
foreign key ("tid") references "tag"("tid")
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE TABLE "job" (
|
||||||
|
"jid" varchar(254) not null primary key,
|
||||||
|
"task" varchar(254) not null,
|
||||||
|
"group_" varchar(254) not null,
|
||||||
|
"args" text not null,
|
||||||
|
"subject" varchar(254) not null,
|
||||||
|
"submitted" timestamp not null,
|
||||||
|
"submitter" varchar(254) not null,
|
||||||
|
"priority" int not null,
|
||||||
|
"state" varchar(254) not null,
|
||||||
|
"retries" int not null,
|
||||||
|
"progress" int not null,
|
||||||
|
"tracker" varchar(254),
|
||||||
|
"worker" varchar(254),
|
||||||
|
"started" timestamp,
|
||||||
|
"finished" timestamp,
|
||||||
|
"startedmillis" bigint
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE TABLE "joblog" (
|
||||||
|
"id" varchar(254) not null primary key,
|
||||||
|
"jid" varchar(254) not null,
|
||||||
|
"level" varchar(254) not null,
|
||||||
|
"created" timestamp not null,
|
||||||
|
"message" text not null,
|
||||||
|
foreign key ("jid") references "job"("jid")
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE TABLE "jobgroupuse" (
|
||||||
|
"groupid" varchar(254) not null,
|
||||||
|
"workerid" varchar(254) not null,
|
||||||
|
primary key ("groupid", "workerid")
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE TABLE "node" (
|
||||||
|
"id" varchar(254) not null,
|
||||||
|
"type" varchar(254) not null,
|
||||||
|
"url" varchar(254) not null,
|
||||||
|
"updated" timestamp not null,
|
||||||
|
"created" timestamp not null
|
||||||
|
)
|
@ -0,0 +1,39 @@
|
|||||||
|
CREATE TABLE "useremail" (
|
||||||
|
"id" varchar(254) not null primary key,
|
||||||
|
"uid" varchar(254) not null,
|
||||||
|
"name" varchar(254) not null,
|
||||||
|
"smtp_host" varchar(254) not null,
|
||||||
|
"smtp_port" int,
|
||||||
|
"smtp_user" varchar(254),
|
||||||
|
"smtp_password" varchar(254),
|
||||||
|
"smtp_ssl" varchar(254) not null,
|
||||||
|
"smtp_certcheck" boolean not null,
|
||||||
|
"mail_from" varchar(254) not null,
|
||||||
|
"mail_replyto" varchar(254),
|
||||||
|
"created" timestamp not null,
|
||||||
|
unique ("uid", "name"),
|
||||||
|
foreign key ("uid") references "user_"("uid")
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE TABLE "sentmail" (
|
||||||
|
"id" varchar(254) not null primary key,
|
||||||
|
"uid" varchar(254) not null,
|
||||||
|
"message_id" varchar(254) not null,
|
||||||
|
"sender" varchar(254) not null,
|
||||||
|
"conn_name" varchar(254) not null,
|
||||||
|
"subject" varchar(254) not null,
|
||||||
|
"recipients" varchar(254) not null,
|
||||||
|
"body" text not null,
|
||||||
|
"created" timestamp not null,
|
||||||
|
foreign key("uid") references "user_"("uid")
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE TABLE "sentmailitem" (
|
||||||
|
"id" varchar(254) not null primary key,
|
||||||
|
"item_id" varchar(254) not null,
|
||||||
|
"sentmail_id" varchar(254) not null,
|
||||||
|
"created" timestamp not null,
|
||||||
|
unique ("item_id", "sentmail_id"),
|
||||||
|
foreign key("item_id") references "item"("itemid"),
|
||||||
|
foreign key("sentmail_id") references "sentmail"("id")
|
||||||
|
);
|
@ -0,0 +1,11 @@
|
|||||||
|
CREATE TABLE "attachment_source" (
|
||||||
|
"id" varchar(254) not null primary key,
|
||||||
|
"file_id" varchar(254) not null,
|
||||||
|
"filename" varchar(254),
|
||||||
|
"created" timestamp not null,
|
||||||
|
foreign key ("file_id") references "filemeta"("id"),
|
||||||
|
foreign key ("id") references "attachment"("attachid")
|
||||||
|
);
|
||||||
|
|
||||||
|
INSERT INTO "attachment_source"
|
||||||
|
SELECT "attachid","filemetaid","name","created" FROM "attachment";
|
@ -0,0 +1,18 @@
|
|||||||
|
CREATE TABLE "periodic_task" (
|
||||||
|
"id" varchar(254) not null primary key,
|
||||||
|
"enabled" boolean not null,
|
||||||
|
"task" varchar(254) not null,
|
||||||
|
"group_" varchar(254) not null,
|
||||||
|
"args" text not null,
|
||||||
|
"subject" varchar(254) not null,
|
||||||
|
"submitter" varchar(254) not null,
|
||||||
|
"priority" int not null,
|
||||||
|
"worker" varchar(254),
|
||||||
|
"marked" timestamp,
|
||||||
|
"timer" varchar(254) not null,
|
||||||
|
"nextrun" timestamp not null,
|
||||||
|
"created" timestamp not null
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE INDEX "periodic_task_nextrun_idx" ON "periodic_task"("nextrun");
|
||||||
|
CREATE INDEX "periodic_task_worker_idx" ON "periodic_task"("worker");
|
@ -0,0 +1,12 @@
|
|||||||
|
CREATE TABLE "attachment_archive" (
|
||||||
|
"id" varchar(254) not null primary key,
|
||||||
|
"file_id" varchar(254) not null,
|
||||||
|
"filename" varchar(254),
|
||||||
|
"message_id" varchar(254),
|
||||||
|
"created" timestamp not null,
|
||||||
|
foreign key ("file_id") references "filemeta"("id"),
|
||||||
|
foreign key ("id") references "attachment"("attachid")
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE INDEX "attachment_archive_message_id_idx"
|
||||||
|
ON "attachment_archive"("message_id");
|
@ -0,0 +1,14 @@
|
|||||||
|
CREATE TABLE "userimap" (
|
||||||
|
"id" varchar(254) not null primary key,
|
||||||
|
"uid" varchar(254) not null,
|
||||||
|
"name" varchar(254) not null,
|
||||||
|
"imap_host" varchar(254) not null,
|
||||||
|
"imap_port" int,
|
||||||
|
"imap_user" varchar(254),
|
||||||
|
"imap_password" varchar(254),
|
||||||
|
"imap_ssl" varchar(254) not null,
|
||||||
|
"imap_certcheck" boolean not null,
|
||||||
|
"created" timestamp not null,
|
||||||
|
unique ("uid", "name"),
|
||||||
|
foreign key ("uid") references "user_"("uid")
|
||||||
|
);
|
@ -0,0 +1,7 @@
|
|||||||
|
ALTER TABLE "collective"
|
||||||
|
ADD COLUMN "integration_enabled" BOOLEAN;
|
||||||
|
|
||||||
|
UPDATE "collective" SET "integration_enabled" = true;
|
||||||
|
|
||||||
|
ALTER TABLE "collective"
|
||||||
|
ALTER COLUMN "integration_enabled" SET NOT NULL;
|
@ -0,0 +1,10 @@
|
|||||||
|
CREATE TABLE "fts_migration" (
|
||||||
|
"id" varchar(254) not null primary key,
|
||||||
|
"version" int not null,
|
||||||
|
"fts_engine" varchar(254) not null,
|
||||||
|
"description" varchar(254) not null,
|
||||||
|
"created" timestamp not null
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE UNIQUE INDEX "fts_migration_version_engine_idx"
|
||||||
|
ON "fts_migration"("version", "fts_engine");
|
@ -0,0 +1,34 @@
|
|||||||
|
CREATE TABLE "folder" (
|
||||||
|
"id" varchar(254) not null primary key,
|
||||||
|
"name" varchar(254) not null,
|
||||||
|
"cid" varchar(254) not null,
|
||||||
|
"owner" varchar(254) not null,
|
||||||
|
"created" timestamp not null,
|
||||||
|
unique ("name", "cid"),
|
||||||
|
foreign key ("cid") references "collective"("cid"),
|
||||||
|
foreign key ("owner") references "user_"("uid")
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE TABLE "folder_member" (
|
||||||
|
"id" varchar(254) not null primary key,
|
||||||
|
"folder_id" varchar(254) not null,
|
||||||
|
"user_id" varchar(254) not null,
|
||||||
|
"created" timestamp not null,
|
||||||
|
unique ("folder_id", "user_id"),
|
||||||
|
foreign key ("folder_id") references "folder"("id"),
|
||||||
|
foreign key ("user_id") references "user_"("uid")
|
||||||
|
);
|
||||||
|
|
||||||
|
ALTER TABLE "item"
|
||||||
|
ADD COLUMN "folder_id" varchar(254) NULL;
|
||||||
|
|
||||||
|
ALTER TABLE "item"
|
||||||
|
ADD FOREIGN KEY ("folder_id")
|
||||||
|
REFERENCES "folder"("id");
|
||||||
|
|
||||||
|
ALTER TABLE "source"
|
||||||
|
ADD COLUMN "folder_id" varchar(254) NULL;
|
||||||
|
|
||||||
|
ALTER TABLE "source"
|
||||||
|
ADD FOREIGN KEY ("folder_id")
|
||||||
|
REFERENCES "folder"("id");
|
@ -0,0 +1,29 @@
|
|||||||
|
-- organization
|
||||||
|
ALTER TABLE "organization"
|
||||||
|
ADD COLUMN "updated" timestamp;
|
||||||
|
|
||||||
|
UPDATE "organization" SET "updated" = "created";
|
||||||
|
|
||||||
|
ALTER TABLE "organization"
|
||||||
|
ALTER COLUMN "updated" SET NOT NULL;
|
||||||
|
|
||||||
|
-- person
|
||||||
|
ALTER TABLE "person" ALTER COLUMN "created"
|
||||||
|
TYPE timestamp;
|
||||||
|
|
||||||
|
ALTER TABLE "person"
|
||||||
|
ADD COLUMN "updated" timestamp;
|
||||||
|
|
||||||
|
UPDATE "person" SET "updated" = "created";
|
||||||
|
|
||||||
|
ALTER TABLE "person"
|
||||||
|
ALTER COLUMN "updated" SET NOT NULL;
|
||||||
|
|
||||||
|
-- equipment
|
||||||
|
ALTER TABLE "equipment"
|
||||||
|
ADD COLUMN "updated" timestamp;
|
||||||
|
|
||||||
|
UPDATE "equipment" SET "updated" = "created";
|
||||||
|
|
||||||
|
ALTER TABLE "equipment"
|
||||||
|
ALTER COLUMN "updated" SET NOT NULL;
|
@ -0,0 +1,11 @@
|
|||||||
|
CREATE TABLE "classifier_setting" (
|
||||||
|
"cid" varchar(254) not null primary key,
|
||||||
|
"enabled" boolean not null,
|
||||||
|
"schedule" varchar(254) not null,
|
||||||
|
"category" varchar(254) not null,
|
||||||
|
"item_count" int not null,
|
||||||
|
"file_id" varchar(254),
|
||||||
|
"created" timestamp not null,
|
||||||
|
foreign key ("cid") references "collective"("cid"),
|
||||||
|
foreign key ("file_id") references "filemeta"("id")
|
||||||
|
);
|
@ -15,13 +15,12 @@ object FlywayMigrate {
|
|||||||
logger.info("Running db migrations...")
|
logger.info("Running db migrations...")
|
||||||
val locations = jdbc.dbmsName match {
|
val locations = jdbc.dbmsName match {
|
||||||
case Some(dbtype) =>
|
case Some(dbtype) =>
|
||||||
val name = if (dbtype == "h2") "postgresql" else dbtype
|
List(s"classpath:db/migration/${dbtype}")
|
||||||
List(s"classpath:db/migration/${name}")
|
|
||||||
case None =>
|
case None =>
|
||||||
logger.warn(
|
logger.warn(
|
||||||
s"Cannot read database name from jdbc url: ${jdbc.url}. Go with PostgreSQL"
|
s"Cannot read database name from jdbc url: ${jdbc.url}. Go with H2"
|
||||||
)
|
)
|
||||||
List("classpath:db/postgresql")
|
List("classpath:db/h2")
|
||||||
}
|
}
|
||||||
|
|
||||||
logger.info(s"Using migration locations: $locations")
|
logger.info(s"Using migration locations: $locations")
|
||||||
|
Loading…
x
Reference in New Issue
Block a user