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 828d17b71e7b730577f450636947541c5a0a1c48..06fd7d004c70dc708c29d2e0fb3e8ae95d3200ab 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 0000000000000000000000000000000000000000..ca07f296e79789878d38da3e4bf5d9f58033947d --- /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 0000000000000000000000000000000000000000..adabf5622ff912fafd6a5abcdce9a6f49de6049e --- /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