diff --git a/hapi-fhir-jpaserver-test-utilities/src/main/java/ca/uhn/fhir/jpa/embedded/DatabaseInitializerHelper.java b/hapi-fhir-jpaserver-test-utilities/src/main/java/ca/uhn/fhir/jpa/embedded/DatabaseInitializerHelper.java index 94329e140c14..7278acfa886d 100644 --- a/hapi-fhir-jpaserver-test-utilities/src/main/java/ca/uhn/fhir/jpa/embedded/DatabaseInitializerHelper.java +++ b/hapi-fhir-jpaserver-test-utilities/src/main/java/ca/uhn/fhir/jpa/embedded/DatabaseInitializerHelper.java @@ -19,6 +19,7 @@ */ package ca.uhn.fhir.jpa.embedded; +import ca.uhn.fhir.util.VersionEnum; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -37,10 +38,9 @@ public void initializePersistenceSchema(JpaEmbeddedDatabase theDatabase) { theDatabase.executeSqlAsBatch(sql); } - public void insertPersistenceTestData(JpaEmbeddedDatabase theDatabase) { - String fileName = String.format( - "migration/releases/%s/data/%s.sql", - HapiEmbeddedDatabasesExtension.FIRST_TESTED_VERSION, theDatabase.getDriverType()); + public void insertPersistenceTestData(JpaEmbeddedDatabase theDatabase, VersionEnum theVersionEnum) { + String fileName = + String.format("migration/releases/%s/data/%s.sql", theVersionEnum, theDatabase.getDriverType()); String sql = getSqlFromResourceFile(fileName); theDatabase.insertTestData(sql); } diff --git a/hapi-fhir-jpaserver-test-utilities/src/main/java/ca/uhn/fhir/jpa/embedded/H2EmbeddedDatabase.java b/hapi-fhir-jpaserver-test-utilities/src/main/java/ca/uhn/fhir/jpa/embedded/H2EmbeddedDatabase.java index 81291623e771..f3090bd858f4 100644 --- a/hapi-fhir-jpaserver-test-utilities/src/main/java/ca/uhn/fhir/jpa/embedded/H2EmbeddedDatabase.java +++ b/hapi-fhir-jpaserver-test-utilities/src/main/java/ca/uhn/fhir/jpa/embedded/H2EmbeddedDatabase.java @@ -54,6 +54,17 @@ public void stop() { deleteDatabaseDirectoryIfExists(); } + private List getAllTableNames() { + List allTableNames = new ArrayList<>(); + List> queryResults = + query("SELECT TABLE_NAME FROM information_schema.tables WHERE TABLE_SCHEMA = 'PUBLIC'"); + for (Map row : queryResults) { + String tableName = row.get("TABLE_NAME").toString(); + allTableNames.add(tableName); + } + return allTableNames; + } + @Override public void disableConstraints() { getJdbcTemplate().execute("SET REFERENTIAL_INTEGRITY = FALSE"); @@ -61,7 +72,11 @@ public void disableConstraints() { @Override public void enableConstraints() { - getJdbcTemplate().execute("SET REFERENTIAL_INTEGRITY = TRUE"); + List sql = new ArrayList<>(); + for (String tableName : getAllTableNames()) { + sql.add(String.format("ALTER TABLE \"%s\" SET REFERENTIAL_INTEGRITY TRUE CHECK", tableName)); + } + executeSqlAsBatch(sql); } @Override @@ -83,10 +98,7 @@ private void deleteDatabaseDirectoryIfExists() { private void dropTables() { List sql = new ArrayList<>(); - List> tableResult = - query("SELECT TABLE_NAME FROM information_schema.tables WHERE TABLE_SCHEMA = 'PUBLIC'"); - for (Map result : tableResult) { - String tableName = result.get("TABLE_NAME").toString(); + for (String tableName : getAllTableNames()) { sql.add(String.format("DROP TABLE %s CASCADE", tableName)); } executeSqlAsBatch(sql); diff --git a/hapi-fhir-jpaserver-test-utilities/src/main/java/ca/uhn/fhir/jpa/embedded/HapiEmbeddedDatabasesExtension.java b/hapi-fhir-jpaserver-test-utilities/src/main/java/ca/uhn/fhir/jpa/embedded/HapiEmbeddedDatabasesExtension.java index 8ccfb9d6d9b2..4b09d4fd13ce 100644 --- a/hapi-fhir-jpaserver-test-utilities/src/main/java/ca/uhn/fhir/jpa/embedded/HapiEmbeddedDatabasesExtension.java +++ b/hapi-fhir-jpaserver-test-utilities/src/main/java/ca/uhn/fhir/jpa/embedded/HapiEmbeddedDatabasesExtension.java @@ -95,8 +95,8 @@ public void initializePersistenceSchema(DriverTypeEnum theDriverType) { myDatabaseInitializerHelper.initializePersistenceSchema(getEmbeddedDatabase(theDriverType)); } - public void insertPersistenceTestData(DriverTypeEnum theDriverType) { - myDatabaseInitializerHelper.insertPersistenceTestData(getEmbeddedDatabase(theDriverType)); + public void insertPersistenceTestData(DriverTypeEnum theDriverType, VersionEnum theVersionEnum) { + myDatabaseInitializerHelper.insertPersistenceTestData(getEmbeddedDatabase(theDriverType), theVersionEnum); } public String getSqlFromResourceFile(String theFileName) { diff --git a/hapi-fhir-jpaserver-test-utilities/src/main/java/ca/uhn/fhir/jpa/embedded/OracleEmbeddedDatabase.java b/hapi-fhir-jpaserver-test-utilities/src/main/java/ca/uhn/fhir/jpa/embedded/OracleEmbeddedDatabase.java index a68463f4f4b5..274d12a72f7e 100644 --- a/hapi-fhir-jpaserver-test-utilities/src/main/java/ca/uhn/fhir/jpa/embedded/OracleEmbeddedDatabase.java +++ b/hapi-fhir-jpaserver-test-utilities/src/main/java/ca/uhn/fhir/jpa/embedded/OracleEmbeddedDatabase.java @@ -55,6 +55,7 @@ public void stop() { @Override public void disableConstraints() { + purgeRecycleBin(); List sql = new ArrayList<>(); List> queryResults = query("SELECT CONSTRAINT_NAME, TABLE_NAME FROM USER_CONSTRAINTS WHERE CONSTRAINT_TYPE != 'P'"); @@ -68,6 +69,7 @@ public void disableConstraints() { @Override public void enableConstraints() { + purgeRecycleBin(); List sql = new ArrayList<>(); List> queryResults = query("SELECT CONSTRAINT_NAME, TABLE_NAME FROM USER_CONSTRAINTS WHERE CONSTRAINT_TYPE != 'P'"); diff --git a/hapi-fhir-jpaserver-test-utilities/src/main/java/ca/uhn/fhir/jpa/embedded/PostgresEmbeddedDatabase.java b/hapi-fhir-jpaserver-test-utilities/src/main/java/ca/uhn/fhir/jpa/embedded/PostgresEmbeddedDatabase.java index 53a7cb74c26f..547c1504a58c 100644 --- a/hapi-fhir-jpaserver-test-utilities/src/main/java/ca/uhn/fhir/jpa/embedded/PostgresEmbeddedDatabase.java +++ b/hapi-fhir-jpaserver-test-utilities/src/main/java/ca/uhn/fhir/jpa/embedded/PostgresEmbeddedDatabase.java @@ -63,13 +63,43 @@ public void disableConstraints() { executeSqlAsBatch(sql); } + public void validateConstraints() { + getJdbcTemplate() + .execute( + """ + do $$ + declare r record; + BEGIN + FOR r IN ( + SELECT FORMAT( + 'UPDATE pg_constraint SET convalidated=false WHERE conname = ''%I''; ALTER TABLE %I VALIDATE CONSTRAINT %I;', + tc.constraint_name, + tc.table_name, + tc.constraint_name + ) AS x + FROM information_schema.table_constraints AS tc + JOIN information_schema.tables t ON t.table_name = tc.table_name and t.table_type = 'BASE TABLE' + JOIN information_schema.key_column_usage AS kcu ON tc.constraint_name = kcu.constraint_name + JOIN information_schema.constraint_column_usage AS ccu ON ccu.constraint_name = tc.constraint_name + WHERE constraint_type = 'FOREIGN KEY' + AND tc.constraint_schema = 'public' + ) + LOOP + EXECUTE (r.x); + END LOOP; + END; + $$;"""); + } + @Override public void enableConstraints() { + List sql = new ArrayList<>(); for (String tableName : getAllTableNames()) { sql.add(String.format("ALTER TABLE \"%s\" ENABLE TRIGGER ALL", tableName)); } executeSqlAsBatch(sql); + validateConstraints(); } @Override diff --git a/hapi-fhir-jpaserver-test-utilities/src/main/resources/migration/releases/V5_2_0/data/H2_EMBEDDED.sql b/hapi-fhir-jpaserver-test-utilities/src/main/resources/migration/releases/V5_2_0/data/H2_EMBEDDED.sql new file mode 100644 index 000000000000..2647d7931e35 --- /dev/null +++ b/hapi-fhir-jpaserver-test-utilities/src/main/resources/migration/releases/V5_2_0/data/H2_EMBEDDED.sql @@ -0,0 +1,33 @@ +INSERT INTO MPI_LINK ( + PID, + CREATED, + EID_MATCH, + TARGET_TYPE, + LINK_SOURCE, + MATCH_RESULT, + NEW_PERSON, + PERSON_PID, + SCORE, + TARGET_PID, + UPDATED, + VECTOR, + VERSION, + GOLDEN_RESOURCE_PID, + RULE_COUNT +) VALUES ( + 1, + '2023-04-05 15:16:26.43', + 1, + 'PATIENT', + 0, + 2, + 1, + 1906, + NULL, + 1905, + '2023-04-05 15:16:26.43', + NULL, + '1', + 1906, + 1 +); diff --git a/hapi-fhir-jpaserver-test-utilities/src/main/resources/migration/releases/V5_2_0/data/MSSQL_2012.sql b/hapi-fhir-jpaserver-test-utilities/src/main/resources/migration/releases/V5_2_0/data/MSSQL_2012.sql new file mode 100644 index 000000000000..2647d7931e35 --- /dev/null +++ b/hapi-fhir-jpaserver-test-utilities/src/main/resources/migration/releases/V5_2_0/data/MSSQL_2012.sql @@ -0,0 +1,33 @@ +INSERT INTO MPI_LINK ( + PID, + CREATED, + EID_MATCH, + TARGET_TYPE, + LINK_SOURCE, + MATCH_RESULT, + NEW_PERSON, + PERSON_PID, + SCORE, + TARGET_PID, + UPDATED, + VECTOR, + VERSION, + GOLDEN_RESOURCE_PID, + RULE_COUNT +) VALUES ( + 1, + '2023-04-05 15:16:26.43', + 1, + 'PATIENT', + 0, + 2, + 1, + 1906, + NULL, + 1905, + '2023-04-05 15:16:26.43', + NULL, + '1', + 1906, + 1 +); diff --git a/hapi-fhir-jpaserver-test-utilities/src/main/resources/migration/releases/V5_2_0/data/ORACLE_12C.sql b/hapi-fhir-jpaserver-test-utilities/src/main/resources/migration/releases/V5_2_0/data/ORACLE_12C.sql new file mode 100644 index 000000000000..e9a4cc2f51b3 --- /dev/null +++ b/hapi-fhir-jpaserver-test-utilities/src/main/resources/migration/releases/V5_2_0/data/ORACLE_12C.sql @@ -0,0 +1,33 @@ +INSERT INTO MPI_LINK ( + PID, + CREATED, + EID_MATCH, + TARGET_TYPE, + LINK_SOURCE, + MATCH_RESULT, + NEW_PERSON, + PERSON_PID, + SCORE, + TARGET_PID, + UPDATED, + VECTOR, + VERSION, + GOLDEN_RESOURCE_PID, + RULE_COUNT +) VALUES ( + 1, + SYSDATE, + 1, + 'PATIENT', + 0, + 2, + 1, + 1906, + NULL, + 1905, + SYSDATE, + NULL, + '1', + 1906, + 1 +); diff --git a/hapi-fhir-jpaserver-test-utilities/src/main/resources/migration/releases/V5_2_0/data/POSTGRES_9_4.sql b/hapi-fhir-jpaserver-test-utilities/src/main/resources/migration/releases/V5_2_0/data/POSTGRES_9_4.sql new file mode 100644 index 000000000000..2304423b0d60 --- /dev/null +++ b/hapi-fhir-jpaserver-test-utilities/src/main/resources/migration/releases/V5_2_0/data/POSTGRES_9_4.sql @@ -0,0 +1,33 @@ +INSERT INTO MPI_LINK ( + PID, + CREATED, + EID_MATCH, + TARGET_TYPE, + LINK_SOURCE, + MATCH_RESULT, + NEW_PERSON, + PERSON_PID, + SCORE, + TARGET_PID, + UPDATED, + VECTOR, + VERSION, + GOLDEN_RESOURCE_PID, + RULE_COUNT +) VALUES ( + 1, + '2023-04-05 15:16:26.43', + true, + 'PATIENT', + 0, + 2, + true, + 1906, + NULL, + 1905, + '2023-04-05 15:16:26.43', + NULL, + '1', + 1906, + 1 +); diff --git a/hapi-fhir-jpaserver-test-utilities/src/main/resources/migration/releases/V5_3_0/data/H2_EMBEDDED.sql b/hapi-fhir-jpaserver-test-utilities/src/main/resources/migration/releases/V5_3_0/data/H2_EMBEDDED.sql new file mode 100644 index 000000000000..d60b0f272a7d --- /dev/null +++ b/hapi-fhir-jpaserver-test-utilities/src/main/resources/migration/releases/V5_3_0/data/H2_EMBEDDED.sql @@ -0,0 +1,68 @@ +INSERT INTO HFJ_RESOURCE ( + RES_ID, + RES_VERSION, + HAS_TAGS, + RES_PUBLISHED, + RES_UPDATED, + SP_HAS_LINKS, + HASH_SHA256, + SP_INDEX_STATUS, + SP_CMPSTR_UNIQ_PRESENT, + SP_COORDS_PRESENT, + SP_DATE_PRESENT, + SP_NUMBER_PRESENT, + SP_QUANTITY_NRML_PRESENT, + SP_QUANTITY_PRESENT, + SP_STRING_PRESENT, + SP_TOKEN_PRESENT, + SP_URI_PRESENT, + RES_TYPE, + RES_VER +) VALUES ( + 1702, + 'R4', + 0, + '2023-06-15 09:58:42.92', + '2023-06-15 09:58:42.92', + 0, + '6beed652b77f6c65d776e57341a0b5b0596ac9cfb0e8345a5a5cfbfaa59e2b62', + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 'Observation', + 1 +); + + +INSERT INTO HFJ_SPIDX_QUANTITY_NRML ( + RES_ID, + RES_TYPE, + SP_UPDATED, + SP_MISSING, + SP_NAME, SP_ID, + SP_SYSTEM, + SP_UNITS, + HASH_IDENTITY_AND_UNITS, + HASH_IDENTITY_SYS_UNITS, + HASH_IDENTITY, + SP_VALUE +) VALUES ( + 1702, + 'Observation', + '2023-04-05 15:16:26.43', + 0, 'value-quantity', + 2, + 'https://unitsofmeasure.org', + 'g', + -864931808150710347, + 6382255012744790145, + -1901136387361512731, + 0.012 +); diff --git a/hapi-fhir-jpaserver-test-utilities/src/main/resources/migration/releases/V5_3_0/data/MSSQL_2012.sql b/hapi-fhir-jpaserver-test-utilities/src/main/resources/migration/releases/V5_3_0/data/MSSQL_2012.sql new file mode 100644 index 000000000000..d60b0f272a7d --- /dev/null +++ b/hapi-fhir-jpaserver-test-utilities/src/main/resources/migration/releases/V5_3_0/data/MSSQL_2012.sql @@ -0,0 +1,68 @@ +INSERT INTO HFJ_RESOURCE ( + RES_ID, + RES_VERSION, + HAS_TAGS, + RES_PUBLISHED, + RES_UPDATED, + SP_HAS_LINKS, + HASH_SHA256, + SP_INDEX_STATUS, + SP_CMPSTR_UNIQ_PRESENT, + SP_COORDS_PRESENT, + SP_DATE_PRESENT, + SP_NUMBER_PRESENT, + SP_QUANTITY_NRML_PRESENT, + SP_QUANTITY_PRESENT, + SP_STRING_PRESENT, + SP_TOKEN_PRESENT, + SP_URI_PRESENT, + RES_TYPE, + RES_VER +) VALUES ( + 1702, + 'R4', + 0, + '2023-06-15 09:58:42.92', + '2023-06-15 09:58:42.92', + 0, + '6beed652b77f6c65d776e57341a0b5b0596ac9cfb0e8345a5a5cfbfaa59e2b62', + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 'Observation', + 1 +); + + +INSERT INTO HFJ_SPIDX_QUANTITY_NRML ( + RES_ID, + RES_TYPE, + SP_UPDATED, + SP_MISSING, + SP_NAME, SP_ID, + SP_SYSTEM, + SP_UNITS, + HASH_IDENTITY_AND_UNITS, + HASH_IDENTITY_SYS_UNITS, + HASH_IDENTITY, + SP_VALUE +) VALUES ( + 1702, + 'Observation', + '2023-04-05 15:16:26.43', + 0, 'value-quantity', + 2, + 'https://unitsofmeasure.org', + 'g', + -864931808150710347, + 6382255012744790145, + -1901136387361512731, + 0.012 +); diff --git a/hapi-fhir-jpaserver-test-utilities/src/main/resources/migration/releases/V5_3_0/data/ORACLE_12C.sql b/hapi-fhir-jpaserver-test-utilities/src/main/resources/migration/releases/V5_3_0/data/ORACLE_12C.sql new file mode 100644 index 000000000000..da22f69c522c --- /dev/null +++ b/hapi-fhir-jpaserver-test-utilities/src/main/resources/migration/releases/V5_3_0/data/ORACLE_12C.sql @@ -0,0 +1,69 @@ +INSERT INTO HFJ_RESOURCE ( + RES_ID, + RES_VERSION, + HAS_TAGS, + RES_PUBLISHED, + RES_UPDATED, + SP_HAS_LINKS, + HASH_SHA256, + SP_INDEX_STATUS, + SP_CMPSTR_UNIQ_PRESENT, + SP_COORDS_PRESENT, + SP_DATE_PRESENT, + SP_NUMBER_PRESENT, + SP_QUANTITY_NRML_PRESENT, + SP_QUANTITY_PRESENT, + SP_STRING_PRESENT, + SP_TOKEN_PRESENT, + SP_URI_PRESENT, + RES_TYPE, + RES_VER +) VALUES ( + 1702, + 'R4', + 0, + SYSDATE, + SYSDATE, + 0, + '6beed652b77f6c65d776e57341a0b5b0596ac9cfb0e8345a5a5cfbfaa59e2b62', + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 'Observation', + 1 +); + + +INSERT INTO HFJ_SPIDX_QUANTITY_NRML ( + RES_ID, + RES_TYPE, + SP_UPDATED, + SP_MISSING, + SP_NAME, SP_ID, + SP_SYSTEM, + SP_UNITS, + HASH_IDENTITY_AND_UNITS, + HASH_IDENTITY_SYS_UNITS, + HASH_IDENTITY, + SP_VALUE +) VALUES ( + 1702, + 'Observation', + SYSDATE, + 0, + 'value-quantity', + 2, + 'https://unitsofmeasure.org', + 'g', + -864931808150710347, + 6382255012744790145, + -1901136387361512731, + 0.012 +); diff --git a/hapi-fhir-jpaserver-test-utilities/src/main/resources/migration/releases/V5_3_0/data/POSTGRES_9_4.sql b/hapi-fhir-jpaserver-test-utilities/src/main/resources/migration/releases/V5_3_0/data/POSTGRES_9_4.sql new file mode 100644 index 000000000000..672a30d684bb --- /dev/null +++ b/hapi-fhir-jpaserver-test-utilities/src/main/resources/migration/releases/V5_3_0/data/POSTGRES_9_4.sql @@ -0,0 +1,69 @@ +INSERT INTO HFJ_RESOURCE ( + RES_ID, + RES_VERSION, + HAS_TAGS, + RES_PUBLISHED, + RES_UPDATED, + SP_HAS_LINKS, + HASH_SHA256, + SP_INDEX_STATUS, + SP_CMPSTR_UNIQ_PRESENT, + SP_COORDS_PRESENT, + SP_DATE_PRESENT, + SP_NUMBER_PRESENT, + SP_QUANTITY_NRML_PRESENT, + SP_QUANTITY_PRESENT, + SP_STRING_PRESENT, + SP_TOKEN_PRESENT, + SP_URI_PRESENT, + RES_TYPE, + RES_VER +) VALUES ( + 1702, + 'R4', + false, + '2023-06-15 09:58:42.92', + '2023-06-15 09:58:42.92', + false, + '6beed652b77f6c65d776e57341a0b5b0596ac9cfb0e8345a5a5cfbfaa59e2b62', + 1, + false, + false, + false, + false, + true, + false, + false, + true, + true, + 'Observation', + 1 +); + +INSERT INTO HFJ_SPIDX_QUANTITY_NRML ( + RES_ID, + RES_TYPE, + SP_UPDATED, + SP_MISSING, + SP_NAME, + SP_ID, + SP_SYSTEM, + SP_UNITS, + HASH_IDENTITY_AND_UNITS, + HASH_IDENTITY_SYS_UNITS, + HASH_IDENTITY, + SP_VALUE +) VALUES ( + 1702, + 'Observation', + '2023-04-05 15:16:26.43', + false, + 'value-quantity', + 2, + 'https://unitsofmeasure.org', + 'g', + -864931808150710347, + 6382255012744790145, + -1901136387361512731, + 0.012 +); diff --git a/hapi-fhir-jpaserver-test-utilities/src/main/resources/migration/releases/V5_4_0/data/H2_EMBEDDED.sql b/hapi-fhir-jpaserver-test-utilities/src/main/resources/migration/releases/V5_4_0/data/H2_EMBEDDED.sql new file mode 100644 index 000000000000..ffd2004b26bf --- /dev/null +++ b/hapi-fhir-jpaserver-test-utilities/src/main/resources/migration/releases/V5_4_0/data/H2_EMBEDDED.sql @@ -0,0 +1,37 @@ +INSERT INTO HFJ_BLK_IMPORT_JOB ( + PID, + JOB_ID, + JOB_STATUS, + STATUS_TIME, + STATUS_MESSAGE, + JOB_DESC, + OPTLOCK, + FILE_COUNT, + ROW_PROCESSING_MODE, + BATCH_SIZE +) VALUES ( + 60, + '87145395-f9be-4a7b-abb3-6d41b6caf185', + 'READY', + '2023-06-23 13:07:58.442', + '', + 'ETL Import Job: (unnamed)', + 2, + 2, + 'FHIR_TRANSACTION', + 100 +); + +INSERT INTO HFJ_BLK_IMPORT_JOBFILE ( + PID, + JOB_PID, + JOB_CONTENTS, + FILE_SEQ, + TENANT_NAME +) VALUES ( + 64, + 60, + 72995, + 0, + '' +); diff --git a/hapi-fhir-jpaserver-test-utilities/src/main/resources/migration/releases/V5_4_0/data/MSSQL_2012.sql b/hapi-fhir-jpaserver-test-utilities/src/main/resources/migration/releases/V5_4_0/data/MSSQL_2012.sql new file mode 100644 index 000000000000..ffd2004b26bf --- /dev/null +++ b/hapi-fhir-jpaserver-test-utilities/src/main/resources/migration/releases/V5_4_0/data/MSSQL_2012.sql @@ -0,0 +1,37 @@ +INSERT INTO HFJ_BLK_IMPORT_JOB ( + PID, + JOB_ID, + JOB_STATUS, + STATUS_TIME, + STATUS_MESSAGE, + JOB_DESC, + OPTLOCK, + FILE_COUNT, + ROW_PROCESSING_MODE, + BATCH_SIZE +) VALUES ( + 60, + '87145395-f9be-4a7b-abb3-6d41b6caf185', + 'READY', + '2023-06-23 13:07:58.442', + '', + 'ETL Import Job: (unnamed)', + 2, + 2, + 'FHIR_TRANSACTION', + 100 +); + +INSERT INTO HFJ_BLK_IMPORT_JOBFILE ( + PID, + JOB_PID, + JOB_CONTENTS, + FILE_SEQ, + TENANT_NAME +) VALUES ( + 64, + 60, + 72995, + 0, + '' +); diff --git a/hapi-fhir-jpaserver-test-utilities/src/main/resources/migration/releases/V5_4_0/data/ORACLE_12C.sql b/hapi-fhir-jpaserver-test-utilities/src/main/resources/migration/releases/V5_4_0/data/ORACLE_12C.sql new file mode 100644 index 000000000000..df0ae2c8c1eb --- /dev/null +++ b/hapi-fhir-jpaserver-test-utilities/src/main/resources/migration/releases/V5_4_0/data/ORACLE_12C.sql @@ -0,0 +1,37 @@ +INSERT INTO HFJ_BLK_IMPORT_JOB ( + PID, + JOB_ID, + JOB_STATUS, + STATUS_TIME, + STATUS_MESSAGE, + JOB_DESC, + OPTLOCK, + FILE_COUNT, + ROW_PROCESSING_MODE, + BATCH_SIZE +) VALUES ( + 60, + '87145395-f9be-4a7b-abb3-6d41b6caf185', + 'READY', + SYSDATE, + '', + 'ETL Import Job: (unnamed)', + 2, + 2, + 'FHIR_TRANSACTION', + 100 +); + +INSERT INTO HFJ_BLK_IMPORT_JOBFILE ( + PID, + JOB_PID, + JOB_CONTENTS, + FILE_SEQ, + TENANT_NAME +) VALUES ( + 64, + 60, + HEXTORAW('453d7a34'), + 0, + '' +); diff --git a/hapi-fhir-jpaserver-test-utilities/src/main/resources/migration/releases/V5_4_0/data/POSTGRES_9_4.sql b/hapi-fhir-jpaserver-test-utilities/src/main/resources/migration/releases/V5_4_0/data/POSTGRES_9_4.sql new file mode 100644 index 000000000000..ffd2004b26bf --- /dev/null +++ b/hapi-fhir-jpaserver-test-utilities/src/main/resources/migration/releases/V5_4_0/data/POSTGRES_9_4.sql @@ -0,0 +1,37 @@ +INSERT INTO HFJ_BLK_IMPORT_JOB ( + PID, + JOB_ID, + JOB_STATUS, + STATUS_TIME, + STATUS_MESSAGE, + JOB_DESC, + OPTLOCK, + FILE_COUNT, + ROW_PROCESSING_MODE, + BATCH_SIZE +) VALUES ( + 60, + '87145395-f9be-4a7b-abb3-6d41b6caf185', + 'READY', + '2023-06-23 13:07:58.442', + '', + 'ETL Import Job: (unnamed)', + 2, + 2, + 'FHIR_TRANSACTION', + 100 +); + +INSERT INTO HFJ_BLK_IMPORT_JOBFILE ( + PID, + JOB_PID, + JOB_CONTENTS, + FILE_SEQ, + TENANT_NAME +) VALUES ( + 64, + 60, + 72995, + 0, + '' +); diff --git a/hapi-fhir-jpaserver-test-utilities/src/main/resources/migration/releases/V5_5_0/data/H2_EMBEDDED.sql b/hapi-fhir-jpaserver-test-utilities/src/main/resources/migration/releases/V5_5_0/data/H2_EMBEDDED.sql new file mode 100644 index 000000000000..6d1daba00990 --- /dev/null +++ b/hapi-fhir-jpaserver-test-utilities/src/main/resources/migration/releases/V5_5_0/data/H2_EMBEDDED.sql @@ -0,0 +1,55 @@ +INSERT INTO HFJ_RESOURCE ( + RES_ID, + RES_VERSION, + HAS_TAGS, + RES_PUBLISHED, + RES_UPDATED, + SP_HAS_LINKS, + HASH_SHA256, + SP_INDEX_STATUS, + SP_CMPSTR_UNIQ_PRESENT, + SP_COORDS_PRESENT, + SP_DATE_PRESENT, + SP_NUMBER_PRESENT, + SP_QUANTITY_NRML_PRESENT, + SP_QUANTITY_PRESENT, + SP_STRING_PRESENT, + SP_TOKEN_PRESENT, + SP_URI_PRESENT, + RES_TYPE, + RES_VER +) + VALUES ( + 1656, + 'R4', + 0, + '2023-06-15 09:58:42.92', + '2023-06-15 09:58:42.92', + 0, + '6beed652b77f6c65d776e57341a0b5b0596ac9cfb0e8345a5a5cfbfaa59e2b62', + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 1, + 'Observation', + 1 +); + + +INSERT INTO HFJ_IDX_CMB_TOK_NU ( + PID, + HASH_COMPLETE, + IDX_STRING, + RES_ID +) VALUES ( + 10, + '5570851350247697202', + 'Patient?birthdate=1974-12-25&family=WINDSOR&gender=http%3A%2F%2Fhl7.org%2Ffhir%2Fadministrative-gender%7Cmale', + 1656 +); diff --git a/hapi-fhir-jpaserver-test-utilities/src/main/resources/migration/releases/V5_5_0/data/MSSQL_2012.sql b/hapi-fhir-jpaserver-test-utilities/src/main/resources/migration/releases/V5_5_0/data/MSSQL_2012.sql new file mode 100644 index 000000000000..33ef46e2f5fd --- /dev/null +++ b/hapi-fhir-jpaserver-test-utilities/src/main/resources/migration/releases/V5_5_0/data/MSSQL_2012.sql @@ -0,0 +1,55 @@ +INSERT INTO HFJ_RESOURCE ( + RES_ID, + RES_VERSION, + HAS_TAGS, + RES_PUBLISHED, + RES_UPDATED, + SP_HAS_LINKS, + HASH_SHA256, + SP_INDEX_STATUS, + SP_CMPSTR_UNIQ_PRESENT, + SP_COORDS_PRESENT, + SP_DATE_PRESENT, + SP_NUMBER_PRESENT, + SP_QUANTITY_NRML_PRESENT, + SP_QUANTITY_PRESENT, + SP_STRING_PRESENT, + SP_TOKEN_PRESENT, + SP_URI_PRESENT, + RES_TYPE, + RES_VER +) + VALUES ( + 1653, + 'R4', + 'false', + '2023-06-15 09:58:42.92', + '2023-06-15 09:58:42.92', + 'false', + '6beed652b77f6c65d776e57341a0b5b0596ac9cfb0e8345a5a5cfbfaa59e2b62', + 1, + 'false', + 'false', + 'false', + 'false', + 'true', + 'false', + 'false', + 'true', + 'true', + 'Observation', + 1 +); + + +INSERT INTO HFJ_IDX_CMB_TOK_NU ( + PID, + HASH_COMPLETE, + IDX_STRING, + RES_ID +) VALUES ( + 10, + '5570851350247697202', + 'Patient?birthdate=1974-12-25&family=WINDSOR&gender=http%3A%2F%2Fhl7.org%2Ffhir%2Fadministrative-gender%7Cmale', + 1653 +); diff --git a/hapi-fhir-jpaserver-test-utilities/src/main/resources/migration/releases/V5_5_0/data/ORACLE_12C.sql b/hapi-fhir-jpaserver-test-utilities/src/main/resources/migration/releases/V5_5_0/data/ORACLE_12C.sql new file mode 100644 index 000000000000..bef94b97cc35 --- /dev/null +++ b/hapi-fhir-jpaserver-test-utilities/src/main/resources/migration/releases/V5_5_0/data/ORACLE_12C.sql @@ -0,0 +1,55 @@ +INSERT INTO HFJ_RESOURCE ( + RES_ID, + RES_VERSION, + HAS_TAGS, + RES_PUBLISHED, + RES_UPDATED, + SP_HAS_LINKS, + HASH_SHA256, + SP_INDEX_STATUS, + SP_CMPSTR_UNIQ_PRESENT, + SP_COORDS_PRESENT, + SP_DATE_PRESENT, + SP_NUMBER_PRESENT, + SP_QUANTITY_NRML_PRESENT, + SP_QUANTITY_PRESENT, + SP_STRING_PRESENT, + SP_TOKEN_PRESENT, + SP_URI_PRESENT, + RES_TYPE, + RES_VER +) + VALUES ( + 1653, + 'R4', + 0, + SYSDATE, + SYSDATE, + 0, + '6beed652b77f6c65d776e57341a0b5b0596ac9cfb0e8345a5a5cfbfaa59e2b62', + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 1, + 'Observation', + 1 +); + + +INSERT INTO HFJ_IDX_CMB_TOK_NU ( + PID, + HASH_COMPLETE, + IDX_STRING, + RES_ID +) VALUES ( + 10, + '5570851350247697202', + 'Patient?birthdate=1974-12-25&family=WINDSOR&gender=http%3A%2F%2Fhl7.org%2Ffhir%2Fadministrative-gender%7Cmale', + 1653 +); diff --git a/hapi-fhir-jpaserver-test-utilities/src/main/resources/migration/releases/V5_5_0/data/POSTGRES_9_4.sql b/hapi-fhir-jpaserver-test-utilities/src/main/resources/migration/releases/V5_5_0/data/POSTGRES_9_4.sql new file mode 100644 index 000000000000..d55f18c2aa59 --- /dev/null +++ b/hapi-fhir-jpaserver-test-utilities/src/main/resources/migration/releases/V5_5_0/data/POSTGRES_9_4.sql @@ -0,0 +1,55 @@ +INSERT INTO HFJ_RESOURCE ( + RES_ID, + RES_VERSION, + HAS_TAGS, + RES_PUBLISHED, + RES_UPDATED, + SP_HAS_LINKS, + HASH_SHA256, + SP_INDEX_STATUS, + SP_CMPSTR_UNIQ_PRESENT, + SP_COORDS_PRESENT, + SP_DATE_PRESENT, + SP_NUMBER_PRESENT, + SP_QUANTITY_NRML_PRESENT, + SP_QUANTITY_PRESENT, + SP_STRING_PRESENT, + SP_TOKEN_PRESENT, + SP_URI_PRESENT, + RES_TYPE, + RES_VER +) + VALUES ( + 1653, + 'R4', + FALSE, + '2023-06-15 09:58:42.92', + '2023-06-15 09:58:42.92', + FALSE, + '6beed652b77f6c65d776e57341a0b5b0596ac9cfb0e8345a5a5cfbfaa59e2b62', + 1, + FALSE, + FALSE, + FALSE, + FALSE, + TRUE, + FALSE, + FALSE, + TRUE, + TRUE, + 'Observation', + 1 +); + + +INSERT INTO HFJ_IDX_CMB_TOK_NU ( + PID, + HASH_COMPLETE, + IDX_STRING, + RES_ID +) VALUES ( + 10, + '5570851350247697202', + 'Patient?birthdate=1974-12-25&family=WINDSOR&gender=http%3A%2F%2Fhl7.org%2Ffhir%2Fadministrative-gender%7Cmale', + 1653 +); diff --git a/hapi-fhir-jpaserver-test-utilities/src/main/resources/migration/releases/V6_0_0/data/H2_EMBEDDED.sql b/hapi-fhir-jpaserver-test-utilities/src/main/resources/migration/releases/V6_0_0/data/H2_EMBEDDED.sql new file mode 100644 index 000000000000..1768c4ef7da2 --- /dev/null +++ b/hapi-fhir-jpaserver-test-utilities/src/main/resources/migration/releases/V6_0_0/data/H2_EMBEDDED.sql @@ -0,0 +1,63 @@ +INSERT INTO BT2_JOB_INSTANCE ( + ID, + JOB_CANCELLED, + CMB_RECS_PROCESSED, + CMB_RECS_PER_SEC, + CREATE_TIME, + CUR_GATED_STEP_ID, + DEFINITION_ID, + DEFINITION_VER, + END_TIME, + ERROR_COUNT, + EST_REMAINING, + PARAMS_JSON, + PROGRESS_PCT, + START_TIME, + STAT, + WORK_CHUNKS_PURGED +) VALUES ( + '00161699-bcfe-428e-9ca2-caceb9645f8a', + 0, + 0, + 0, + '2023-07-06 14:24:10.845', + 'WriteBundleForImportStep', + 'bulkImportJob', + 1, + '2023-07-06 14:25:11.098', + 0, + '0ms', + '{"jobId":"42bfa0dd-ab7b-4991-8284-e4b2902c696b","batchSize":100}', + 1, + '2023-07-06 14:24:10.875', + 'COMPLETED', + 1 +); + +INSERT INTO BT2_WORK_CHUNK ( + ID, + CREATE_TIME, + END_TIME, + ERROR_COUNT, + INSTANCE_ID, + DEFINITION_ID, + DEFINITION_VER, + RECORDS_PROCESSED, + SEQ, + START_TIME, + STAT, + TGT_STEP_ID +) VALUES ( + '01d26875-8d1a-4e37-b554-62a3219f009b', + '2023-07-06 15:20:20.797', + '2023-07-06 15:21:11.142', + 0, + '00161699-bcfe-428e-9ca2-caceb9645f8a', + 'bulkImportJob', + 1, + 0, + 0, + '2023-07-06 15:21:11.14', + 'COMPLETED', + 'ReadInResourcesFromFileStep' +); diff --git a/hapi-fhir-jpaserver-test-utilities/src/main/resources/migration/releases/V6_0_0/data/MSSQL_2012.sql b/hapi-fhir-jpaserver-test-utilities/src/main/resources/migration/releases/V6_0_0/data/MSSQL_2012.sql new file mode 100644 index 000000000000..1768c4ef7da2 --- /dev/null +++ b/hapi-fhir-jpaserver-test-utilities/src/main/resources/migration/releases/V6_0_0/data/MSSQL_2012.sql @@ -0,0 +1,63 @@ +INSERT INTO BT2_JOB_INSTANCE ( + ID, + JOB_CANCELLED, + CMB_RECS_PROCESSED, + CMB_RECS_PER_SEC, + CREATE_TIME, + CUR_GATED_STEP_ID, + DEFINITION_ID, + DEFINITION_VER, + END_TIME, + ERROR_COUNT, + EST_REMAINING, + PARAMS_JSON, + PROGRESS_PCT, + START_TIME, + STAT, + WORK_CHUNKS_PURGED +) VALUES ( + '00161699-bcfe-428e-9ca2-caceb9645f8a', + 0, + 0, + 0, + '2023-07-06 14:24:10.845', + 'WriteBundleForImportStep', + 'bulkImportJob', + 1, + '2023-07-06 14:25:11.098', + 0, + '0ms', + '{"jobId":"42bfa0dd-ab7b-4991-8284-e4b2902c696b","batchSize":100}', + 1, + '2023-07-06 14:24:10.875', + 'COMPLETED', + 1 +); + +INSERT INTO BT2_WORK_CHUNK ( + ID, + CREATE_TIME, + END_TIME, + ERROR_COUNT, + INSTANCE_ID, + DEFINITION_ID, + DEFINITION_VER, + RECORDS_PROCESSED, + SEQ, + START_TIME, + STAT, + TGT_STEP_ID +) VALUES ( + '01d26875-8d1a-4e37-b554-62a3219f009b', + '2023-07-06 15:20:20.797', + '2023-07-06 15:21:11.142', + 0, + '00161699-bcfe-428e-9ca2-caceb9645f8a', + 'bulkImportJob', + 1, + 0, + 0, + '2023-07-06 15:21:11.14', + 'COMPLETED', + 'ReadInResourcesFromFileStep' +); diff --git a/hapi-fhir-jpaserver-test-utilities/src/main/resources/migration/releases/V6_0_0/data/ORACLE_12C.sql b/hapi-fhir-jpaserver-test-utilities/src/main/resources/migration/releases/V6_0_0/data/ORACLE_12C.sql new file mode 100644 index 000000000000..d664c49edb51 --- /dev/null +++ b/hapi-fhir-jpaserver-test-utilities/src/main/resources/migration/releases/V6_0_0/data/ORACLE_12C.sql @@ -0,0 +1,63 @@ +INSERT INTO BT2_JOB_INSTANCE ( + ID, + JOB_CANCELLED, + CMB_RECS_PROCESSED, + CMB_RECS_PER_SEC, + CREATE_TIME, + CUR_GATED_STEP_ID, + DEFINITION_ID, + DEFINITION_VER, + END_TIME, + ERROR_COUNT, + EST_REMAINING, + PARAMS_JSON, + PROGRESS_PCT, + START_TIME, + STAT, + WORK_CHUNKS_PURGED +) VALUES ( + '00161699-bcfe-428e-9ca2-caceb9645f8a', + 0, + 0, + 0, + SYSDATE, + 'WriteBundleForImportStep', + 'bulkImportJob', + 1, + SYSDATE, + 0, + '0ms', + '{"jobId":"42bfa0dd-ab7b-4991-8284-e4b2902c696b","batchSize":100}', + 1, + SYSDATE, + 'COMPLETED', + 1 +); + +INSERT INTO BT2_WORK_CHUNK ( + ID, + CREATE_TIME, + END_TIME, + ERROR_COUNT, + INSTANCE_ID, + DEFINITION_ID, + DEFINITION_VER, + RECORDS_PROCESSED, + SEQ, + START_TIME, + STAT, + TGT_STEP_ID +) VALUES ( + '01d26875-8d1a-4e37-b554-62a3219f009b', + SYSDATE, + SYSDATE, + 0, + '00161699-bcfe-428e-9ca2-caceb9645f8a', + 'bulkImportJob', + 1, + 0, + 0, + SYSDATE, + 'COMPLETED', + 'ReadInResourcesFromFileStep' +); diff --git a/hapi-fhir-jpaserver-test-utilities/src/main/resources/migration/releases/V6_0_0/data/POSTGRES_9_4.sql b/hapi-fhir-jpaserver-test-utilities/src/main/resources/migration/releases/V6_0_0/data/POSTGRES_9_4.sql new file mode 100644 index 000000000000..cc51eddda1fc --- /dev/null +++ b/hapi-fhir-jpaserver-test-utilities/src/main/resources/migration/releases/V6_0_0/data/POSTGRES_9_4.sql @@ -0,0 +1,63 @@ +INSERT INTO BT2_JOB_INSTANCE ( + ID, + JOB_CANCELLED, + CMB_RECS_PROCESSED, + CMB_RECS_PER_SEC, + CREATE_TIME, + CUR_GATED_STEP_ID, + DEFINITION_ID, + DEFINITION_VER, + END_TIME, + ERROR_COUNT, + EST_REMAINING, + PARAMS_JSON, + PROGRESS_PCT, + START_TIME, + STAT, + WORK_CHUNKS_PURGED +) VALUES ( + '00161699-bcfe-428e-9ca2-caceb9645f8a', + false, + 0, + 0, + '2023-07-06 14:24:10.845', + 'WriteBundleForImportStep', + 'bulkImportJob', + 1, + '2023-07-06 14:25:11.098', + 0, + '0ms', + '{"jobId":"42bfa0dd-ab7b-4991-8284-e4b2902c696b","batchSize":100}', + 1, + '2023-07-06 14:24:10.875', + 'COMPLETED', + true +); + +INSERT INTO BT2_WORK_CHUNK ( + ID, + CREATE_TIME, + END_TIME, + ERROR_COUNT, + INSTANCE_ID, + DEFINITION_ID, + DEFINITION_VER, + RECORDS_PROCESSED, + SEQ, + START_TIME, + STAT, + TGT_STEP_ID +) VALUES ( + '01d26875-8d1a-4e37-b554-62a3219f009b', + '2023-07-06 15:20:20.797', + '2023-07-06 15:21:11.142', + 0, + '00161699-bcfe-428e-9ca2-caceb9645f8a', + 'bulkImportJob', + 1, + 0, + 0, + '2023-07-06 15:21:11.14', + 'COMPLETED', + 'ReadInResourcesFromFileStep' +); diff --git a/hapi-fhir-jpaserver-test-utilities/src/main/resources/migration/releases/V6_6_0/data/H2_EMBEDDED.sql b/hapi-fhir-jpaserver-test-utilities/src/main/resources/migration/releases/V6_6_0/data/H2_EMBEDDED.sql new file mode 100644 index 000000000000..c631ef56c5ef --- /dev/null +++ b/hapi-fhir-jpaserver-test-utilities/src/main/resources/migration/releases/V6_6_0/data/H2_EMBEDDED.sql @@ -0,0 +1,92 @@ +INSERT INTO HFJ_RESOURCE ( + RES_ID, + RES_VERSION, + HAS_TAGS, + RES_PUBLISHED, + RES_UPDATED, + SP_HAS_LINKS, + HASH_SHA256, + SP_INDEX_STATUS, + SP_CMPSTR_UNIQ_PRESENT, + SP_COORDS_PRESENT, + SP_DATE_PRESENT, + SP_NUMBER_PRESENT, + SP_QUANTITY_NRML_PRESENT, + SP_QUANTITY_PRESENT, + SP_STRING_PRESENT, + SP_TOKEN_PRESENT, + SP_URI_PRESENT, + RES_TYPE, + RES_VER +) VALUES ( + 1678, + 'R4', + 0, + '2023-06-15 09:58:42.92', + '2023-06-15 09:58:42.92', + 0, + '6beed652b77f6c65d776e57341a0b5b0596ac9cfb0e8345a5a5cfbfaa59e2b62', + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 1, + 'Observation', + 1 +); + + +INSERT INTO HFJ_RES_SEARCH_URL ( + RES_SEARCH_URL, + CREATED_TIME, + RES_ID +) VALUES ( + 'https://example.com', + '2023-06-29 10:14:39.69', + 1678 +); + +INSERT INTO HFJ_REVINFO ( + REV +) VALUES ( + 1 +); + +INSERT INTO MPI_LINK_AUD ( + PID, + REV, + REVTYPE, + PERSON_PID, + GOLDEN_RESOURCE_PID, + TARGET_TYPE, + RULE_COUNT, + TARGET_PID, + MATCH_RESULT, + LINK_SOURCE, + VERSION, + EID_MATCH, + NEW_PERSON, + SCORE +) VALUES ( + 1, + 1, + 0, + 1358, + 1358, + 'PATIENT', + 0, + 1357, + 2, + 0, + 1, + 0, + 1, + 1 +); + + diff --git a/hapi-fhir-jpaserver-test-utilities/src/main/resources/migration/releases/V6_6_0/data/MSSQL_2012.sql b/hapi-fhir-jpaserver-test-utilities/src/main/resources/migration/releases/V6_6_0/data/MSSQL_2012.sql new file mode 100644 index 000000000000..c631ef56c5ef --- /dev/null +++ b/hapi-fhir-jpaserver-test-utilities/src/main/resources/migration/releases/V6_6_0/data/MSSQL_2012.sql @@ -0,0 +1,92 @@ +INSERT INTO HFJ_RESOURCE ( + RES_ID, + RES_VERSION, + HAS_TAGS, + RES_PUBLISHED, + RES_UPDATED, + SP_HAS_LINKS, + HASH_SHA256, + SP_INDEX_STATUS, + SP_CMPSTR_UNIQ_PRESENT, + SP_COORDS_PRESENT, + SP_DATE_PRESENT, + SP_NUMBER_PRESENT, + SP_QUANTITY_NRML_PRESENT, + SP_QUANTITY_PRESENT, + SP_STRING_PRESENT, + SP_TOKEN_PRESENT, + SP_URI_PRESENT, + RES_TYPE, + RES_VER +) VALUES ( + 1678, + 'R4', + 0, + '2023-06-15 09:58:42.92', + '2023-06-15 09:58:42.92', + 0, + '6beed652b77f6c65d776e57341a0b5b0596ac9cfb0e8345a5a5cfbfaa59e2b62', + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 1, + 'Observation', + 1 +); + + +INSERT INTO HFJ_RES_SEARCH_URL ( + RES_SEARCH_URL, + CREATED_TIME, + RES_ID +) VALUES ( + 'https://example.com', + '2023-06-29 10:14:39.69', + 1678 +); + +INSERT INTO HFJ_REVINFO ( + REV +) VALUES ( + 1 +); + +INSERT INTO MPI_LINK_AUD ( + PID, + REV, + REVTYPE, + PERSON_PID, + GOLDEN_RESOURCE_PID, + TARGET_TYPE, + RULE_COUNT, + TARGET_PID, + MATCH_RESULT, + LINK_SOURCE, + VERSION, + EID_MATCH, + NEW_PERSON, + SCORE +) VALUES ( + 1, + 1, + 0, + 1358, + 1358, + 'PATIENT', + 0, + 1357, + 2, + 0, + 1, + 0, + 1, + 1 +); + + diff --git a/hapi-fhir-jpaserver-test-utilities/src/main/resources/migration/releases/V6_6_0/data/ORACLE_12C.sql b/hapi-fhir-jpaserver-test-utilities/src/main/resources/migration/releases/V6_6_0/data/ORACLE_12C.sql new file mode 100644 index 000000000000..105575b88531 --- /dev/null +++ b/hapi-fhir-jpaserver-test-utilities/src/main/resources/migration/releases/V6_6_0/data/ORACLE_12C.sql @@ -0,0 +1,92 @@ +INSERT INTO HFJ_RESOURCE ( + RES_ID, + RES_VERSION, + HAS_TAGS, + RES_PUBLISHED, + RES_UPDATED, + SP_HAS_LINKS, + HASH_SHA256, + SP_INDEX_STATUS, + SP_CMPSTR_UNIQ_PRESENT, + SP_COORDS_PRESENT, + SP_DATE_PRESENT, + SP_NUMBER_PRESENT, + SP_QUANTITY_NRML_PRESENT, + SP_QUANTITY_PRESENT, + SP_STRING_PRESENT, + SP_TOKEN_PRESENT, + SP_URI_PRESENT, + RES_TYPE, + RES_VER +) VALUES ( + 1678, + 'R4', + 0, + SYSDATE, + SYSDATE, + 0, + '6beed652b77f6c65d776e57341a0b5b0596ac9cfb0e8345a5a5cfbfaa59e2b62', + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 1, + 'Observation', + 1 +); + + +INSERT INTO HFJ_RES_SEARCH_URL ( + RES_SEARCH_URL, + CREATED_TIME, + RES_ID +) VALUES ( + 'https://example.com', + SYSDATE, + 1678 +); + +INSERT INTO HFJ_REVINFO ( + REV +) VALUES ( + 1 +); + +INSERT INTO MPI_LINK_AUD ( + PID, + REV, + REVTYPE, + PERSON_PID, + GOLDEN_RESOURCE_PID, + TARGET_TYPE, + RULE_COUNT, + TARGET_PID, + MATCH_RESULT, + LINK_SOURCE, + VERSION, + EID_MATCH, + NEW_PERSON, + SCORE +) VALUES ( + 1, + 1, + 0, + 1358, + 1358, + 'PATIENT', + 0, + 1357, + 2, + 0, + 1, + 0, + 1, + 1 +); + + diff --git a/hapi-fhir-jpaserver-test-utilities/src/main/resources/migration/releases/V6_6_0/data/POSTGRES_9_4.sql b/hapi-fhir-jpaserver-test-utilities/src/main/resources/migration/releases/V6_6_0/data/POSTGRES_9_4.sql new file mode 100644 index 000000000000..d83deca74f95 --- /dev/null +++ b/hapi-fhir-jpaserver-test-utilities/src/main/resources/migration/releases/V6_6_0/data/POSTGRES_9_4.sql @@ -0,0 +1,92 @@ +INSERT INTO HFJ_RESOURCE ( + RES_ID, + RES_VERSION, + HAS_TAGS, + RES_PUBLISHED, + RES_UPDATED, + SP_HAS_LINKS, + HASH_SHA256, + SP_INDEX_STATUS, + SP_CMPSTR_UNIQ_PRESENT, + SP_COORDS_PRESENT, + SP_DATE_PRESENT, + SP_NUMBER_PRESENT, + SP_QUANTITY_NRML_PRESENT, + SP_QUANTITY_PRESENT, + SP_STRING_PRESENT, + SP_TOKEN_PRESENT, + SP_URI_PRESENT, + RES_TYPE, + RES_VER +) VALUES ( + 1678, + 'R4', + false, + '2023-06-15 09:58:42.92', + '2023-06-15 09:58:42.92', + false, + '6beed652b77f6c65d776e57341a0b5b0596ac9cfb0e8345a5a5cfbfaa59e2b62', + 1, + false, + false, + false, + false, + true, + false, + false, + true, + true, + 'Observation', + 1 +); + + +INSERT INTO HFJ_RES_SEARCH_URL ( + RES_SEARCH_URL, + CREATED_TIME, + RES_ID +) VALUES ( + 'https://example.com', + '2023-06-29 10:14:39.69', + 1678 +); + +INSERT INTO HFJ_REVINFO ( + REV +) VALUES ( + 1 +); + +INSERT INTO MPI_LINK_AUD ( + PID, + REV, + REVTYPE, + PERSON_PID, + GOLDEN_RESOURCE_PID, + TARGET_TYPE, + RULE_COUNT, + TARGET_PID, + MATCH_RESULT, + LINK_SOURCE, + VERSION, + EID_MATCH, + NEW_PERSON, + SCORE +) VALUES ( + 1, + 1, + 0, + 1358, + 1358, + 'PATIENT', + 0, + 1357, + 2, + 0, + 1, + false, + true, + 1 +); + + diff --git a/hapi-fhir-jpaserver-test-utilities/src/test/java/ca/uhn/fhir/jpa/embedded/HapiSchemaMigrationTest.java b/hapi-fhir-jpaserver-test-utilities/src/test/java/ca/uhn/fhir/jpa/embedded/HapiSchemaMigrationTest.java index 725895d607d6..2783ea3439e1 100644 --- a/hapi-fhir-jpaserver-test-utilities/src/test/java/ca/uhn/fhir/jpa/embedded/HapiSchemaMigrationTest.java +++ b/hapi-fhir-jpaserver-test-utilities/src/test/java/ca/uhn/fhir/jpa/embedded/HapiSchemaMigrationTest.java @@ -22,6 +22,7 @@ import java.sql.SQLException; import java.util.Collections; import java.util.Properties; +import java.util.Set; import static ca.uhn.fhir.jpa.embedded.HapiEmbeddedDatabasesExtension.FIRST_TESTED_VERSION; import static ca.uhn.fhir.jpa.migrate.SchemaMigrator.HAPI_FHIR_MIGRATION_TABLENAME; @@ -61,26 +62,35 @@ public void testMigration(DriverTypeEnum theDriverType) throws SQLException { ourLog.info("Running hapi fhir migration tasks for {}", theDriverType); myEmbeddedServersExtension.initializePersistenceSchema(theDriverType); - myEmbeddedServersExtension.insertPersistenceTestData(theDriverType); + myEmbeddedServersExtension.insertPersistenceTestData(theDriverType, FIRST_TESTED_VERSION); JpaEmbeddedDatabase database = myEmbeddedServersExtension.getEmbeddedDatabase(theDriverType); DataSource dataSource = database.getDataSource(); HapiMigrationDao hapiMigrationDao = new HapiMigrationDao(dataSource, theDriverType, HAPI_FHIR_MIGRATION_TABLENAME); HapiMigrationStorageSvc hapiMigrationStorageSvc = new HapiMigrationStorageSvc(hapiMigrationDao); - VersionEnum[] allVersions = VersionEnum.values(); + VersionEnum[] allVersions = VersionEnum.values(); - int fromVersion = FIRST_TESTED_VERSION.ordinal() - 1; - VersionEnum from = allVersions[fromVersion]; - - int lastVersion = allVersions.length - 1; - VersionEnum to = allVersions[lastVersion]; + Set dataVersions = Set.of( + VersionEnum.V5_2_0, + VersionEnum.V5_3_0, + VersionEnum.V5_4_0, + VersionEnum.V5_5_0, + VersionEnum.V6_0_0, + VersionEnum.V6_6_0 + ); - MigrationTaskList migrationTasks = new HapiFhirJpaMigrationTasks(Collections.emptySet()).getTaskList(from, to); - SchemaMigrator schemaMigrator = new SchemaMigrator(TEST_SCHEMA_NAME, HAPI_FHIR_MIGRATION_TABLENAME, dataSource, new Properties(), migrationTasks, hapiMigrationStorageSvc); - schemaMigrator.setDriverType(theDriverType); - schemaMigrator.createMigrationTableIfRequired(); - schemaMigrator.migrate(); + int fromVersion = 0; + VersionEnum from = allVersions[fromVersion]; + VersionEnum toVersion; + + for (int i = 0; i < allVersions.length; i++) { + toVersion = allVersions[i]; + migrate(theDriverType, dataSource, hapiMigrationStorageSvc, toVersion); + if (dataVersions.contains(toVersion)) { + myEmbeddedServersExtension.insertPersistenceTestData(theDriverType, toVersion); + } + } if (theDriverType == DriverTypeEnum.POSTGRES_9_4) { // we only run this for postgres because: @@ -93,6 +103,21 @@ public void testMigration(DriverTypeEnum theDriverType) throws SQLException { } } + private static void migrate(DriverTypeEnum theDriverType, DataSource dataSource, HapiMigrationStorageSvc hapiMigrationStorageSvc, VersionEnum from, VersionEnum to) throws SQLException { + MigrationTaskList migrationTasks = new HapiFhirJpaMigrationTasks(Collections.emptySet()).getTaskList(from, to); + SchemaMigrator schemaMigrator = new SchemaMigrator(TEST_SCHEMA_NAME, HAPI_FHIR_MIGRATION_TABLENAME, dataSource, new Properties(), migrationTasks, hapiMigrationStorageSvc); + schemaMigrator.setDriverType(theDriverType); + schemaMigrator.createMigrationTableIfRequired(); + schemaMigrator.migrate(); + } + + private static void migrate(DriverTypeEnum theDriverType, DataSource dataSource, HapiMigrationStorageSvc hapiMigrationStorageSvc, VersionEnum to) throws SQLException { + MigrationTaskList migrationTasks = new HapiFhirJpaMigrationTasks(Collections.emptySet()).getAllTasks(new VersionEnum[]{to}); + SchemaMigrator schemaMigrator = new SchemaMigrator(TEST_SCHEMA_NAME, HAPI_FHIR_MIGRATION_TABLENAME, dataSource, new Properties(), migrationTasks, hapiMigrationStorageSvc); + schemaMigrator.setDriverType(theDriverType); + schemaMigrator.createMigrationTableIfRequired(); + schemaMigrator.migrate(); + } @Test public void testCreateMigrationTableIfRequired() throws SQLException {