diff --git a/openbis/source/sql/generic/117/schema-117.sql b/openbis/source/sql/generic/117/schema-117.sql index 9a0433cb5987096d553d61b18412426086c7f2ad..8255a7a00f8b5d66fe09e26588f9b6d3bd54c87c 100644 --- a/openbis/source/sql/generic/117/schema-117.sql +++ b/openbis/source/sql/generic/117/schema-117.sql @@ -366,6 +366,7 @@ ALTER TABLE MATERIAL_TYPE_PROPERTY_TYPES ADD CONSTRAINT MTPT_BK_UK UNIQUE(MATY_I ALTER TABLE DATA_SET_TYPES ADD CONSTRAINT DSTY_BK_UK UNIQUE(CODE,DBIN_ID); ALTER TABLE PERSONS ADD CONSTRAINT PERS_BK_UK UNIQUE(DBIN_ID,USER_ID); ALTER TABLE PROJECTS ADD CONSTRAINT PROJ_BK_UK UNIQUE(CODE,SPACE_ID); +ALTER TABLE PROJECTS ADD CONSTRAINT PROJ_PI_UK UNIQUE(PERM_ID); ALTER TABLE PROPERTY_TYPES ADD CONSTRAINT PRTY_BK_UK UNIQUE(CODE,IS_INTERNAL_NAMESPACE,DBIN_ID); ALTER TABLE ROLE_ASSIGNMENTS ADD CONSTRAINT ROAS_PE_SPACE_BK_UK UNIQUE(PERS_ID_GRANTEE,ROLE_CODE,SPACE_ID); ALTER TABLE ROLE_ASSIGNMENTS ADD CONSTRAINT ROAS_PE_INSTANCE_BK_UK UNIQUE(PERS_ID_GRANTEE,ROLE_CODE,DBIN_ID); diff --git a/openbis/source/sql/postgresql/migration/migration-116-117.sql b/openbis/source/sql/postgresql/migration/migration-116-117.sql index 956aaa296b38215b400f2de9ec2f7a7209d6a754..fba263e510d54d8fccdf11065a241d9203e62662 100644 --- a/openbis/source/sql/postgresql/migration/migration-116-117.sql +++ b/openbis/source/sql/postgresql/migration/migration-116-117.sql @@ -22,3 +22,4 @@ DROP function GENERATE_PROJECT_PERM_IDS(); -- change perm id column to not null ALTER TABLE projects ALTER COLUMN perm_id SET NOT NULL; +ALTER TABLE PROJECTS ADD CONSTRAINT PROJ_PI_UK UNIQUE(PERM_ID); diff --git a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/ProjectDAOTest.java b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/ProjectDAOTest.java index 834ffce8231138cba17929bda68c5a278c9fda85..0469e9e2cd0107e7c992bce259714d6c4e3e1661 100644 --- a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/ProjectDAOTest.java +++ b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/ProjectDAOTest.java @@ -111,6 +111,7 @@ public class ProjectDAOTest extends AbstractDAOTest final List<ProjectPE> allProjects = daoFactory.getProjectDAO().listProjects(); Collections.sort(allProjects); final ProjectPE templateProject = allProjects.get(4); + assertEquals(templateProject.getCode(), TESTPROJ); ProjectPE found = @@ -143,6 +144,20 @@ public class ProjectDAOTest extends AbstractDAOTest templateProject.getSpace().getCode(), templateProject.getCode())); } + @Test + public void testTryGetByPermID() throws Exception + { + ProjectPE found = daoFactory.getProjectDAO().tryGetByPermID("20120814110011738-105"); + assertEquals(TEST_PROJECT, found.getCode()); + } + + @Test + public void testTryGetByPermIDNonexistent() throws Exception + { + ProjectPE found = daoFactory.getProjectDAO().tryGetByPermID("UNKNOWN-PERM-ID"); + assertNull(found); + } + @Test public void testCreateProject() throws Exception { diff --git a/openbis/sourceTest/sql/postgresql/117/finish-117.sql b/openbis/sourceTest/sql/postgresql/117/finish-117.sql index b2c13baf4d404cd727b90761672d024924929671..e553c4ff4e686e0fa38115bf78ae6b8267452703 100644 --- a/openbis/sourceTest/sql/postgresql/117/finish-117.sql +++ b/openbis/sourceTest/sql/postgresql/117/finish-117.sql @@ -148,6 +148,8 @@ ALTER TABLE ONLY post_registration_dataset_queue ADD CONSTRAINT prdq_pk PRIMARY KEY (id); ALTER TABLE ONLY projects ADD CONSTRAINT proj_bk_uk UNIQUE (code, space_id); +ALTER TABLE ONLY projects + ADD CONSTRAINT proj_pi_uk UNIQUE (perm_id); ALTER TABLE ONLY projects ADD CONSTRAINT proj_pk PRIMARY KEY (id); ALTER TABLE ONLY project_relationships_history