Skip to content
Snippets Groups Projects
Commit 67b0a776 authored by Cedric CAFFY's avatar Cedric CAFFY
Browse files

Added preconditions to Oracle Liquibase changeLog file to check schema version number

Corrected the MapSqlStatementsReader::getStatements() method so that it throws an exception if the schema corresponding to a version does not exist
parent 6ecc9d52
No related branches found
No related tags found
No related merge requests found
......@@ -156,8 +156,18 @@ MapSqlStatementsReader::~MapSqlStatementsReader() {
}
std::list<std::string> MapSqlStatementsReader::getStatements(){
std::string schema = AllCatalogueSchema::mapSchema[m_catalogueVersion][getDatabaseType()];
return getAllStatementsFromSchema(schema);
std::map<std::string,std::string> mapVersionSchemas;
try {
mapVersionSchemas = AllCatalogueSchema::mapSchema.at(m_catalogueVersion);
} catch(const std::out_of_range &ex){
throw cta::exception::Exception("No schema has been found for version number "+m_catalogueVersion);
}
try {
std::string schema = mapVersionSchemas.at(getDatabaseType());
return getAllStatementsFromSchema(schema);
} catch(const std::out_of_range &ex){
throw cta::exception::Exception("No schema has been found for database type "+getDatabaseType());
}
}
}}
......
--liquibase formatted sql
--changeset ccaffy:1 failOnError:true dbms:oracle
--preconditions onFail:HALT onError:HALT
--precondition-sql-check expectedResult:"1.0" SELECT CONCAT(CONCAT(CAST(SCHEMA_VERSION_MAJOR as VARCHAR(10)),'.'), CAST(SCHEMA_VERSION_MINOR AS VARCHAR(10))) AS CATALOGUE_VERSION FROM CTA_CATALOGUE;
ALTER INDEX TEMP_T_F_I_B_ARCHIVE_FILE_ID_I RENAME TO TEMP_T_F_I_B_AFI_IDX;
--rollback ALTER INDEX TEMP_T_F_I_B_AFI_IDX RENAME TO TEMP_T_F_I_B_ARCHIVE_FILE_ID_I;
--changeset ccaffy:2 failOnError:true dbms:oracle
--preconditions onFail:HALT onError:HALT
--precondition-sql-check expectedResult:"1.0" SELECT CONCAT(CONCAT(CAST(SCHEMA_VERSION_MAJOR as VARCHAR(10)),'.'), CAST(SCHEMA_VERSION_MINOR AS VARCHAR(10))) AS CATALOGUE_VERSION FROM CTA_CATALOGUE;
ALTER TABLE USAGESTATS RENAME CONSTRAINT NN_USAGESTATS_GID TO USAGESTATS_GID_NN;
--rollback ALTER TABLE USAGESTATS RENAME CONSTRAINT USAGESTATS_GID_NN TO NN_USAGESTATS_GID;
--changeset ccaffy:3 failOnError:true dbms:oracle
--preconditions onFail:HALT onError:HALT
--precondition-sql-check expectedResult:"1.0" SELECT CONCAT(CONCAT(CAST(SCHEMA_VERSION_MAJOR as VARCHAR(10)),'.'), CAST(SCHEMA_VERSION_MINOR AS VARCHAR(10))) AS CATALOGUE_VERSION FROM CTA_CATALOGUE;
ALTER TABLE USAGESTATS RENAME CONSTRAINT NN_USAGESTATS_TS TO USAGESTATS_TS_NN;
--rollback ALTER TABLE USAGESTATS RENAME CONSTRAINT USAGESTATS_TS_NN TO NN_USAGESTATS_TS;
--changeset ccaffy:4 failOnError:true dbms:oracle
--preconditions onFail:HALT onError:HALT
--precondition-sql-check expectedResult:"1.0" SELECT CONCAT(CONCAT(CAST(SCHEMA_VERSION_MAJOR as VARCHAR(10)),'.'), CAST(SCHEMA_VERSION_MINOR AS VARCHAR(10))) AS CATALOGUE_VERSION FROM CTA_CATALOGUE;
ALTER TABLE ARCHIVE_ROUTE ADD CONSTRAINT ARCHIVE_ROUTE_SCI_TPI_UN UNIQUE(STORAGE_CLASS_ID, TAPE_POOL_ID);
--rollback ALTER TABLE ARCHIVE_ROUTE DROP CONSTRAINT ARCHIVE_ROUTE_SCI_TPI_UN;
--changeset ccaffy:5 failOnError:true dbms:oracle
--preconditions onFail:HALT onError:HALT
--precondition-sql-check expectedResult:"1.0" SELECT CONCAT(CONCAT(CAST(SCHEMA_VERSION_MAJOR as VARCHAR(10)),'.'), CAST(SCHEMA_VERSION_MINOR AS VARCHAR(10))) AS CATALOGUE_VERSION FROM CTA_CATALOGUE;
UPDATE CTA_CATALOGUE SET SCHEMA_VERSION_MINOR=1
--rollback UPDATE CTA_CATALOGUE SET SCHEMA_VERSION_MINOR=0
#
url: jdbc:oracle:thin:@HOST:PORT/SERVICE_NAME
username: MYSCHEMA
password: password
username: USERNAME
password: PASSWORD
driver: oracle.jdbc.OracleDriver
classpath: ../drivers/ojdbc8.jar
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment