diff --git a/openbis/source/java/ch/ethz/sis/openbis/generic/server/asapi/v3/translator/externaldms/ExternalDmsTranslator.java b/openbis/source/java/ch/ethz/sis/openbis/generic/server/asapi/v3/translator/externaldms/ExternalDmsTranslator.java index 30905e2978c28d9f2a86d2c35e41fb46839391ad..f5fe7d2c10ca87ca9e1b6d778df71b4376841e28 100644 --- a/openbis/source/java/ch/ethz/sis/openbis/generic/server/asapi/v3/translator/externaldms/ExternalDmsTranslator.java +++ b/openbis/source/java/ch/ethz/sis/openbis/generic/server/asapi/v3/translator/externaldms/ExternalDmsTranslator.java @@ -69,7 +69,7 @@ public class ExternalDmsTranslator extends AbstractCachingTranslator<Long, Exter result.setLabel(baseRecord.label); result.setUrlTemplate(baseRecord.address); result.setAddress(baseRecord.address); - result.setAddressType(ExternalDmsAddressType.fromString(baseRecord.addressType)); + result.setAddressType(ExternalDmsAddressType.valueOf(baseRecord.addressType)); result.setOpenbis(ExternalDmsAddressType.OPENBIS.equals(result.getAddressType())); } diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/datasetlister/DatasetLister.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/datasetlister/DatasetLister.java index 2d14a7ebd362f8d07e52efefba8fa02830e1d3cd..057b9170286986c1ceb7b2dd1b4c2e77329558a0 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/datasetlister/DatasetLister.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/datasetlister/DatasetLister.java @@ -1297,7 +1297,7 @@ public class DatasetLister extends AbstractLister implements IDatasetLister result.setLabel(edmsRecord.label); result.setUrlTemplate(edmsRecord.address); result.setAddress(edmsRecord.address); - result.setAddressType(ExternalDataManagementSystemType.fromString(edmsRecord.addressType)); + result.setAddressType(ExternalDataManagementSystemType.valueOf(edmsRecord.addressType)); result.setOpenBIS(ExternalDataManagementSystemType.OPENBIS.equals(result.getAddressType())); return result; diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/fetchoptions/datasetlister/DataSetLister.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/fetchoptions/datasetlister/DataSetLister.java index 549a7c2d91289904eb801619b04aa89a0a5c8737..3eb52556e1aeff818e0a01f7386e5c1fe1f91f24 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/fetchoptions/datasetlister/DataSetLister.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/fetchoptions/datasetlister/DataSetLister.java @@ -256,7 +256,7 @@ public class DataSetLister implements IDataSetLister edms.setUrlTemplate(dataSet.edms_address); edms.setAddress(dataSet.edms_address); edms.setDatabaseInstance(db); - edms.setAddressType(ExternalDataManagementSystemType.fromString(dataSet.edms_address_type)); + edms.setAddressType(ExternalDataManagementSystemType.valueOf(dataSet.edms_address_type)); edms.setOpenBIS(ExternalDataManagementSystemType.OPENBIS.equals(edms.getAddressType())); initializer.setExternalDataManagementSystem(edms); } diff --git a/openbis/source/sql/generic/158/schema-158.sql b/openbis/source/sql/generic/158/schema-158.sql index 852115ef3ac615fb2174e495566c25cac4ac6d7b..9b7224f038c20729516f99a7941020fa7c1111c2 100644 --- a/openbis/source/sql/generic/158/schema-158.sql +++ b/openbis/source/sql/generic/158/schema-158.sql @@ -64,7 +64,7 @@ CREATE TABLE EXPERIMENT_RELATIONSHIPS_HISTORY (ID TECH_ID NOT NULL, MAIN_EXPE_ID CREATE TABLE SAMPLE_RELATIONSHIPS_HISTORY (ID TECH_ID NOT NULL, MAIN_SAMP_ID TECH_ID NOT NULL, RELATION_TYPE TEXT_VALUE, EXPE_ID TECH_ID, SAMP_ID TECH_ID, DATA_ID TECH_ID, ENTITY_PERM_ID TEXT_VALUE, PERS_ID_AUTHOR TECH_ID, VALID_FROM_TIMESTAMP TIME_STAMP NOT NULL, VALID_UNTIL_TIMESTAMP TIME_STAMP, SPACE_ID TECH_ID, PROJ_ID TECH_ID); CREATE TABLE DATA_SET_RELATIONSHIPS_HISTORY (ID TECH_ID NOT NULL, MAIN_DATA_ID TECH_ID NOT NULL, RELATION_TYPE TEXT_VALUE, ORDINAL INTEGER, EXPE_ID TECH_ID, SAMP_ID TECH_ID, DATA_ID TECH_ID, ENTITY_PERM_ID TEXT_VALUE, PERS_ID_AUTHOR TECH_ID, VALID_FROM_TIMESTAMP TIME_STAMP NOT NULL, VALID_UNTIL_TIMESTAMP TIME_STAMP); -CREATE TABLE EXTERNAL_DATA_MANAGEMENT_SYSTEMS (ID TECH_ID, CODE CODE, LABEL TEXT_VALUE, ADDRESS TEXT_VALUE, ADDRESS_TYPE EDMS_ADDRESS_TYPE); +CREATE TABLE EXTERNAL_DATA_MANAGEMENT_SYSTEMS (ID TECH_ID, CODE CODE NOT NULL, LABEL TEXT_VALUE, ADDRESS TEXT_VALUE NOT NULL, ADDRESS_TYPE EDMS_ADDRESS_TYPE NOT NULL); CREATE TABLE LINK_DATA (DATA_ID TECH_ID NOT NULL, EDMS_ID TECH_ID NOT NULL, EXTERNAL_CODE TEXT_VALUE NOT NULL); CREATE TABLE METAPROJECTS (ID TECH_ID NOT NULL, NAME CODE NOT NULL, DESCRIPTION DESCRIPTION_2000, OWNER TECH_ID NOT NULL, PRIVATE BOOLEAN_CHAR NOT NULL DEFAULT TRUE, CREATION_DATE TIME_STAMP_DFL NOT NULL DEFAULT CURRENT_TIMESTAMP); diff --git a/openbis/source/sql/postgresql/migration/migration-157-158.sql b/openbis/source/sql/postgresql/migration/migration-157-158.sql index cb42aa46e642ef53d6a3c5fd4a5720af039c2506..a3fc17166c374c40274fd8cc5a477c2f5ec4c3b4 100644 --- a/openbis/source/sql/postgresql/migration/migration-157-158.sql +++ b/openbis/source/sql/postgresql/migration/migration-157-158.sql @@ -1,6 +1,15 @@ CREATE DOMAIN EDMS_ADDRESS_TYPE AS TEXT CHECK (VALUE IN ('OPENBIS', 'URL', 'FILE_SYSTEM')); + ALTER TABLE external_data_management_systems ADD COLUMN address_type EDMS_ADDRESS_TYPE; UPDATE external_data_management_systems SET address_type='OPENBIS' WHERE is_openbis = true; UPDATE external_data_management_systems SET address_type='URL' WHERE is_openbis = false; +ALTER TABLE external_data_management_systems ALTER COLUMN address_type SET NOT NULL; + +ALTER TABLE external_data_management_systems RENAME COLUMN url_template TO address; +UPDATE external_data_management_systems SET address='UNKNOWN' WHERE address IS NULL; +ALTER TABLE external_data_management_systems ALTER COLUMN address SET NOT NULL; + ALTER TABLE external_data_management_systems DROP COLUMN is_openbis; -ALTER TABLE external_data_management_systems RENAME COLUMN url_template TO address; \ No newline at end of file + +UPDATE external_data_management_systems SET code = (SELECT coalesce(code, '') FROM external_data_management_systems order by coalesce(length(code), '0') desc limit 1) || id WHERE code IS NULL; +ALTER TABLE external_data_management_systems ALTER COLUMN code SET NOT NULL; \ No newline at end of file diff --git a/openbis/sourceTest/sql/postgresql/158/schema-158.sql b/openbis/sourceTest/sql/postgresql/158/schema-158.sql index abad9f21d89d8c10ae16147fc5b153cf607ec263..853083f848b2a64c4b3ab7be0fccddfac1d3b5aa 100644 --- a/openbis/sourceTest/sql/postgresql/158/schema-158.sql +++ b/openbis/sourceTest/sql/postgresql/158/schema-158.sql @@ -1061,10 +1061,10 @@ CREATE SEQUENCE external_data_management_system_id_seq CACHE 1; CREATE TABLE external_data_management_systems ( id tech_id NOT NULL, - code code, + code code NOT NULL, label text_value, - address text_value, - address_type edms_address_type + address text_value NOT NULL, + address_type edms_address_type NOT NULL ); CREATE SEQUENCE file_format_type_id_seq START WITH 1