From 5b480da4be42bae882c05801ed175275a3657294 Mon Sep 17 00:00:00 2001
From: jakubs <jakubs>
Date: Thu, 29 Jan 2015 14:36:13 +0000
Subject: [PATCH] SSDM-1461 increase the size of a code domain in
 multi-data-set archiver db

SVN: 33360
---
 .../MultiDataSetArchiverDBVersionHolder.java  |  2 +-
 .../postgresql/003/schema-003.sql             | 38 +++++++++++++++++++
 .../migration/migration-002-003.sql           |  8 ++++
 3 files changed, 47 insertions(+), 1 deletion(-)
 create mode 100644 datastore_server/source/sql/multi-dataset-archive/postgresql/003/schema-003.sql
 create mode 100644 datastore_server/source/sql/multi-dataset-archive/postgresql/migration/migration-002-003.sql

diff --git a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/plugins/standard/archiver/dataaccess/MultiDataSetArchiverDBVersionHolder.java b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/plugins/standard/archiver/dataaccess/MultiDataSetArchiverDBVersionHolder.java
index 828d17b71e7..06fd7d004c7 100644
--- a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/plugins/standard/archiver/dataaccess/MultiDataSetArchiverDBVersionHolder.java
+++ b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/plugins/standard/archiver/dataaccess/MultiDataSetArchiverDBVersionHolder.java
@@ -26,6 +26,6 @@ public class MultiDataSetArchiverDBVersionHolder implements IDatabaseVersionHold
     @Override
     public String getDatabaseVersion()
     {
-        return "002";
+        return "003";
     }
 }
diff --git a/datastore_server/source/sql/multi-dataset-archive/postgresql/003/schema-003.sql b/datastore_server/source/sql/multi-dataset-archive/postgresql/003/schema-003.sql
new file mode 100644
index 00000000000..ca07f296e79
--- /dev/null
+++ b/datastore_server/source/sql/multi-dataset-archive/postgresql/003/schema-003.sql
@@ -0,0 +1,38 @@
+
+/* ---------------------------------------------------------------------- */
+/* Domains                                                                */
+/* ---------------------------------------------------------------------- */
+
+CREATE DOMAIN TECH_ID AS BIGINT;
+
+CREATE DOMAIN CODE AS VARCHAR(60);
+
+CREATE DOMAIN FILE_PATH AS VARCHAR(1000);
+
+CREATE DOMAIN BOOLEAN_CHAR AS boolean DEFAULT false;
+
+/* ---------------------------------------------------------------------- */
+/* Tables                                                                 */
+/* ---------------------------------------------------------------------- */
+
+CREATE TABLE CONTAINERS (
+  ID bigserial NOT NULL,
+  PATH FILE_PATH,
+  UNARCHIVING_REQUESTED BOOLEAN_CHAR DEFAULT false,
+
+  UNIQUE (PATH),
+  PRIMARY KEY (ID)
+);
+
+CREATE TABLE DATA_SETS (
+  ID bigserial NOT NULL,
+  CODE CODE NOT NULL,
+  CTNR_ID TECH_ID NOT NULL,
+  SIZE_IN_BYTES BIGINT NOT NULL, 
+
+  PRIMARY KEY (ID),
+  UNIQUE (CODE),
+  CONSTRAINT FK_DATA_SET_CONTAINERS FOREIGN KEY (CTNR_ID) REFERENCES CONTAINERS (ID) ON DELETE CASCADE ON UPDATE CASCADE
+);
+
+CREATE INDEX DATA_SETS_CODE_IDX ON DATA_SETS (CODE);
diff --git a/datastore_server/source/sql/multi-dataset-archive/postgresql/migration/migration-002-003.sql b/datastore_server/source/sql/multi-dataset-archive/postgresql/migration/migration-002-003.sql
new file mode 100644
index 00000000000..adabf5622ff
--- /dev/null
+++ b/datastore_server/source/sql/multi-dataset-archive/postgresql/migration/migration-002-003.sql
@@ -0,0 +1,8 @@
+-- a little workaround as it is not possible to alter domain type directly
+
+CREATE DOMAIN TEMP_CODE AS VARCHAR(40);
+ALTER TABLE DATA_SETS ALTER COLUMN CODE TYPE TEMP_CODE;
+DROP DOMAIN CODE;
+CREATE DOMAIN CODE AS VARCHAR(60);
+ALTER TABLE DATA_SETS ALTER COLUMN CODE TYPE CODE;
+DROP DOMAIN TEMP_CODE;
\ No newline at end of file
-- 
GitLab