From 7d81e3b5f26b03c4b6ccf330f94fc206c027a945 Mon Sep 17 00:00:00 2001 From: Taras Amelianovych <97164517+Tamelianovych@users.noreply.github.com> Date: Mon, 27 Jan 2025 15:16:51 +0100 Subject: [PATCH] [DAT-12910]/[DAT-19440]/[DAT-19439] DiffTests changes (#982) * DAT-12910 refactored data for Diff tests/Added additional assertion (check objects folder) * DAT-12910 small test fixes, (removed createPackage/createPackageBody PostgreSQL, MariaDB, MySQL, and SQL Server (MSSQL) do not have a direct CREATE PACKAGE) * DAT-12910 changed config to diff/diffChangelog * DAT-12910 changed create-infra.sh --- .github/workflows/advanced.yml | 4 +- ...dTest.groovy => DiffChangelogTests.groovy} | 82 ++++--- .../harness/diff/DiffCommandTestHelper.groovy | 16 ++ .../liquibase/harness/diff/DiffTests.groovy | 65 ++++++ .../changelogs/mariadb10.3_to_mariadb10.2.xml | 101 --------- .../changelogs/mariadb10.5_to_mariadb10.4.xml | 72 +++++++ .../changelogs/mariadb10.7_to_mariadb10.6.xml | 108 ++++++++-- .../changelogs/mssql2019_to_mssql2022.xml | 116 ---------- .../changelogs/mssql2022_to_mssql2017.xml | 72 +++++++ .../changelogs/mssql2022_to_mssql2019.xml | 114 ++++++++-- .../diff/changelogs/mysql8.4_to_mysql5.7.xml | 174 +++++++++++++++ .../diff/changelogs/mysql8_to_mysql5.6.xml | 173 +++++++++++++++ .../diff/changelogs/mysql8_to_mysql5.7.xml | 101 --------- .../oracle18.4.0_to_oracle18.3.0.xml | 111 ---------- .../oracle18.4.0_to_oracle21.3.0.xml | 111 ---------- .../oracle21.3.0_to_oracle18.4.0.xml | 111 ---------- .../postgresql14_to_postgresql13.xml | 99 ++++++++- .../postgresql17_to_postgresql16.xml | 203 ++++++++++++++++++ .../liquibase/harness/diff/diffDatabases.yml | 62 +++--- .../mariadb10.5_to_mariadb10.4.txt | 15 +- .../mariadb10.7_to_mariadb10.6.txt | 13 +- .../expectedDiff/mssql2019_to_mssql2022.txt | 81 ------- .../expectedDiff/mssql2022_to_mssql2017.txt | 17 +- .../expectedDiff/mssql2022_to_mssql2019.txt | 25 ++- ..._mysql5.7.txt => mysql8.4_to_mysql5.7.txt} | 22 +- ...mariadb10.2.txt => mysql8_to_mysql5.6.txt} | 22 +- .../oracle18.4.0_to_oracle18.3.0.txt | 79 ------- .../oracle18.4.0_to_oracle21.3.0.txt | 79 ------- .../oracle21.3.0_to_oracle18.4.0.txt | 79 ------- .../postgresql14_to_postgresql13.txt | 15 +- .../postgresql17_to_postgresql16.txt | 93 ++++++++ .../harness/DiffChangelogTest.groovy | 6 + .../groovy/liquibase/harness/DiffTest.groovy | 4 +- src/test/resources/automation-runner.sh | 3 + src/test/resources/docker/create-infra.sh | 8 +- 35 files changed, 1307 insertions(+), 1149 deletions(-) rename src/main/groovy/liquibase/harness/diff/{DiffCommandTest.groovy => DiffChangelogTests.groovy} (63%) create mode 100644 src/main/groovy/liquibase/harness/diff/DiffTests.groovy delete mode 100644 src/main/resources/liquibase/harness/diff/changelogs/mariadb10.3_to_mariadb10.2.xml delete mode 100644 src/main/resources/liquibase/harness/diff/changelogs/mssql2019_to_mssql2022.xml create mode 100644 src/main/resources/liquibase/harness/diff/changelogs/mysql8.4_to_mysql5.7.xml create mode 100644 src/main/resources/liquibase/harness/diff/changelogs/mysql8_to_mysql5.6.xml delete mode 100644 src/main/resources/liquibase/harness/diff/changelogs/mysql8_to_mysql5.7.xml delete mode 100644 src/main/resources/liquibase/harness/diff/changelogs/oracle18.4.0_to_oracle18.3.0.xml delete mode 100644 src/main/resources/liquibase/harness/diff/changelogs/oracle18.4.0_to_oracle21.3.0.xml delete mode 100644 src/main/resources/liquibase/harness/diff/changelogs/oracle21.3.0_to_oracle18.4.0.xml create mode 100644 src/main/resources/liquibase/harness/diff/changelogs/postgresql17_to_postgresql16.xml delete mode 100644 src/main/resources/liquibase/harness/diff/expectedDiff/mssql2019_to_mssql2022.txt rename src/main/resources/liquibase/harness/diff/expectedDiff/{mysql8_to_mysql5.7.txt => mysql8.4_to_mysql5.7.txt} (89%) rename src/main/resources/liquibase/harness/diff/expectedDiff/{mariadb10.3_to_mariadb10.2.txt => mysql8_to_mysql5.6.txt} (83%) delete mode 100644 src/main/resources/liquibase/harness/diff/expectedDiff/oracle18.4.0_to_oracle18.3.0.txt delete mode 100644 src/main/resources/liquibase/harness/diff/expectedDiff/oracle18.4.0_to_oracle21.3.0.txt delete mode 100644 src/main/resources/liquibase/harness/diff/expectedDiff/oracle21.3.0_to_oracle18.4.0.txt create mode 100644 src/main/resources/liquibase/harness/diff/expectedDiff/postgresql17_to_postgresql16.txt create mode 100644 src/test/groovy/liquibase/harness/DiffChangelogTest.groovy diff --git a/.github/workflows/advanced.yml b/.github/workflows/advanced.yml index c25063871..9dc741056 100644 --- a/.github/workflows/advanced.yml +++ b/.github/workflows/advanced.yml @@ -28,7 +28,7 @@ on: default: "[\"mysql-5.6\",\"mysql-5.7\",\"mysql-8\",\"mysql-8.4\",\"postgres-12\",\"postgres-13\",\"postgres-14\",\"postgres-15\",\"postgres-16\",\"postgres-17\",\"mariadb-10.2\",\"mariadb-10.3\",\"mariadb-10.4\",\"mariadb-10.5\",\"mariadb-10.6\", \"mariadb-10.7\",\"mariadb-11.4\",\"mssql-2017\",\"mssql-2019\",\"mssql-2022\",\"crdb-23.1\",\"crdb-23.2\",\"crdb-24.1\",\"percona-xtradb-cluster-5.7\",\"percona-xtradb-cluster-8.0\", \"edb-edb-12\",\"edb-edb-13\",\"edb-edb-14\",\"edb-edb-15\",\"edb-edb-16\",\"db2-luw\",\"H2Database-2.2\",\"sqlite\",\"derby\", - \"firebird-3\",\"firebird-4\",\"hsqldb-2.4\",\"hsqldb-2.5\",\"diff\",\"tidb\"]" + \"firebird-3\",\"firebird-4\",\"hsqldb-2.4\",\"hsqldb-2.5\",\"tidb\",\"diff\",\"diffChangelog\"]" jobs: check_build_safety: @@ -53,7 +53,7 @@ jobs: "postgres-12","postgres-13","postgres-14","postgres-15","postgres-16","postgres-17","mariadb-10.2","mariadb-10.3","mariadb-10.4","mariadb-10.5","mariadb-10.6", "mariadb-10.7","mariadb-11.4","mssql-2017","mssql-2019","mssql-2022","crdb-23.1","crdb-23.2","crdb-24.1","percona-xtradb-cluster-5.7","percona-xtradb-cluster-8.0", "edb-edb-12","edb-edb-13","edb-edb-14","edb-edb-15","edb-edb-16","db2-luw","H2Database-2.2","sqlite","derby","firebird-3","firebird-4", - "hsqldb-2.4","hsqldb-2.5","diff","tidb"]' }} + "hsqldb-2.4","hsqldb-2.5","tidb","diff",\"diffChangelog\"]' }} testClasses: ${{ 'AdvancedHarnessSuiteTest' }} steps: - uses: actions/checkout@v4 diff --git a/src/main/groovy/liquibase/harness/diff/DiffCommandTest.groovy b/src/main/groovy/liquibase/harness/diff/DiffChangelogTests.groovy similarity index 63% rename from src/main/groovy/liquibase/harness/diff/DiffCommandTest.groovy rename to src/main/groovy/liquibase/harness/diff/DiffChangelogTests.groovy index 817ebf3ac..8ed74ce6f 100644 --- a/src/main/groovy/liquibase/harness/diff/DiffCommandTest.groovy +++ b/src/main/groovy/liquibase/harness/diff/DiffChangelogTests.groovy @@ -1,5 +1,6 @@ package liquibase.harness.diff +import com.datical.liquibase.ext.config.LiquibaseProConfiguration import liquibase.database.jvm.JdbcConnection import liquibase.harness.config.DatabaseUnderTest import liquibase.harness.config.TestConfig @@ -9,14 +10,16 @@ import spock.lang.Specification import spock.lang.Unroll import static liquibase.harness.diff.DiffCommandTestHelper.* -import static liquibase.harness.util.TestUtils.* -import static liquibase.harness.util.FileUtils.* +import static liquibase.harness.util.FileUtils.deleteFile +import static liquibase.harness.util.FileUtils.getResourceContent +import static liquibase.harness.util.TestUtils.chooseRollbackStrategy +import static liquibase.harness.util.TestUtils.executeCommandScope -class DiffCommandTest extends Specification { +class DiffChangelogTests extends Specification { @Shared - RollbackStrategy strategy; + RollbackStrategy strategy @Shared - List<DatabaseUnderTest> databases; + List<DatabaseUnderTest> databases def setupSpec() { databases = TestConfig.instance.getFilteredDatabasesUnderTest() @@ -64,13 +67,44 @@ class DiffCommandTest extends Specification { executeCommandScope("diffChangelog", argsMap) } + and: "verify that the 'stored objects' directories are created" + argsMapRef.put("referenceUrl", testInput.targetDatabase.url) + argsMapRef.put("referenceUsername", testInput.targetDatabase.username) + argsMapRef.put("referencePassword", testInput.targetDatabase.password) + argsMapRef.put("changelogFile", testInput.pathToGeneratedXmlDiffChangelogFile) + Map<String, Object> scopeValues = new HashMap<>() + scopeValues.put(LiquibaseProConfiguration.INLINE_SQL_KEY.getKey(), false) + executeCommandScope("diffChangelog", argsMapRef, scopeValues) + File expectedDiffFolder = new File(testInput.pathToExpectedDiffFolder) + File[] subDirs = expectedDiffFolder.listFiles(new FileFilter() { + @Override + boolean accept(File file) { + return file.isDirectory() + } + }) + Optional<File> objectsFolder = Arrays.stream(subDirs) + .filter(f -> f.getName().startsWith("objects-")) + .findFirst() + + if (objectsFolder.isEmpty()) { + throw new RuntimeException("No 'objects' folder created inside " + testInput.pathToExpectedDiffFolder) + } + File actualObjectsFolder = objectsFolder.get() + for (String expectedObjectType : Arrays.asList("function", "trigger", "storedprocedure")) { + File objectDir = new File(actualObjectsFolder, expectedObjectType) + assert objectDir.exists() && objectDir.isDirectory() : + "Directory for stored object '" + expectedObjectType + "' was not created at path: " + objectDir.getPath() + "!" + } + then: "validate generated diff changelog" assert validateGeneratedDiffChangelog(testInput) cleanup: "try to rollback changes out from target database, delete generated changelog file" argsMap.put("changelogFile", testInput.pathToChangelogFile) + argsMapRef.put("changelogFile", testInput.pathToReferenceChangelogFile) strategy.performRollback(argsMap) strategy.performRollback(argsMapRef) + clearFolder(actualObjectsFolder.getAbsolutePath()) for (Map.Entry<String, String> entry : map.entrySet()) { deleteFile(entry.value) } @@ -78,42 +112,4 @@ class DiffCommandTest extends Specification { where: testInput << buildTestInput() } - - @Unroll - def "apply diff test against #testInput.referenceDatabase.name #testInput.referenceDatabase.version to targetDatabase #testInput.targetDatabase.name #testInput.targetDatabase.version"() { - given: "read input data for diff test" - Map<String, Object> argsMap = new HashMap() - argsMap.put("url", testInput.targetDatabase.url) - argsMap.put("username", testInput.targetDatabase.username) - argsMap.put("password", testInput.targetDatabase.password) - argsMap.put("referenceUrl", testInput.referenceDatabase.url) - argsMap.put("referenceUsername", testInput.referenceDatabase.username) - argsMap.put("referencePassword", testInput.referenceDatabase.password) - argsMap.put("changelogFile", testInput.pathToChangelogFile) - - and: "check databases are online" - assert testInput.targetDatabase.database.getConnection() instanceof JdbcConnection: "Target database " + - "${testInput.targetDatabase.name}${testInput.targetDatabase.version} is offline!" - assert testInput.referenceDatabase.database.getConnection() instanceof JdbcConnection: "Reference database " + - "${testInput.referenceDatabase.name}${testInput.referenceDatabase.version} is offline!" - - when: "execute update and diff commands" - - executeCommandScope("update", argsMap) - argsMap.put("excludeObjects", "(?i)posts, (?i)authors, (?i)databasechangelog, (?i)databasechangeloglock") - String generatedDiffContent = removeDatabaseInfoFromDiff(executeCommandScope("diff", argsMap).toString()) - - then: "validate generated diff" - String expectedDiffContent = removeDatabaseInfoFromDiff(getResourceContent(testInput.pathToExpectedDiffFile)) - assert expectedDiffContent == generatedDiffContent - - cleanup: "rollback changes" - strategy.performRollback(argsMap) - - where: - testInput << buildTestInput() - } - def cleanupSpec() { - strategy.cleanupDatabase(databases) - } } diff --git a/src/main/groovy/liquibase/harness/diff/DiffCommandTestHelper.groovy b/src/main/groovy/liquibase/harness/diff/DiffCommandTestHelper.groovy index 6949f0283..234ddf9cf 100644 --- a/src/main/groovy/liquibase/harness/diff/DiffCommandTestHelper.groovy +++ b/src/main/groovy/liquibase/harness/diff/DiffCommandTestHelper.groovy @@ -6,7 +6,11 @@ import liquibase.harness.config.DatabaseUnderTest import liquibase.harness.config.TestConfig import liquibase.harness.util.DatabaseConnectionUtil import liquibase.ui.UIService +import org.apache.commons.io.FileUtils import org.yaml.snakeyaml.Yaml + +import java.nio.file.Path +import java.nio.file.Paths import java.util.stream.Collectors import static liquibase.harness.util.FileUtils.* @@ -91,6 +95,7 @@ class DiffCommandTestHelper { "${targetDatabase.name}${targetDatabase.version}.json") .targetDatabase(targetDatabase) .referenceDatabase(referenceDatabase) + .pathToExpectedDiffFolder("src/main/resources${baseDiffPath}" + "expectedDiffChangelogs/") .build()) } new DatabaseConnectionUtil().initializeDatabasesConnection(databasesToConnect) @@ -117,6 +122,9 @@ class DiffCommandTestHelper { map.put("createView", new ArrayList<>(List.of("dropView", "drop view"))) map.put("createIndex", new ArrayList<>(List.of("dropIndex", "drop index"))) map.put("createSequence", new ArrayList<>(List.of("dropSequence", "drop sequence"))) + map.put("createFunction", new ArrayList<>(List.of("dropFunction", "drop function"))) + map.put("createTrigger", new ArrayList<>(List.of("dropTrigger", "drop trigger"))) + map.put("createProcedure", new ArrayList<>(List.of("dropProcedure", "drop procedure"))) if(dbName.equals("mariadb") || dbName.equals("mysql")) { map.put("addForeignKey", new ArrayList<>(List.of("dropForeignKey", "drop foreign key"))) @@ -156,6 +164,13 @@ class DiffCommandTestHelper { .replaceAll(replacementRegexpWS, "") } + static void clearFolder(String pathToObjectDir) { + Path path = Paths.get(pathToObjectDir) + if (path.toFile().isDirectory()) { + FileUtils.forceDelete(new File(pathToObjectDir)) + } + } + @Builder static class TestInput { String pathToExpectedDiffFile @@ -165,6 +180,7 @@ class DiffCommandTestHelper { String pathToGeneratedSqlDiffChangelogFile String pathToGeneratedYmlDiffChangelogFile String pathToGeneratedJsonDiffChangelogFile + String pathToExpectedDiffFolder DatabaseUnderTest referenceDatabase DatabaseUnderTest targetDatabase } diff --git a/src/main/groovy/liquibase/harness/diff/DiffTests.groovy b/src/main/groovy/liquibase/harness/diff/DiffTests.groovy new file mode 100644 index 000000000..d78881205 --- /dev/null +++ b/src/main/groovy/liquibase/harness/diff/DiffTests.groovy @@ -0,0 +1,65 @@ +package liquibase.harness.diff + +import com.datical.liquibase.ext.config.LiquibaseProConfiguration +import liquibase.database.jvm.JdbcConnection +import liquibase.harness.config.DatabaseUnderTest +import liquibase.harness.config.TestConfig +import liquibase.harness.util.rollback.RollbackStrategy +import spock.lang.Shared +import spock.lang.Specification +import spock.lang.Unroll + +import static liquibase.harness.diff.DiffCommandTestHelper.* +import static liquibase.harness.util.TestUtils.* +import static liquibase.harness.util.FileUtils.* + +class DiffTests extends Specification { + @Shared + RollbackStrategy strategy + @Shared + List<DatabaseUnderTest> databases + + def setupSpec() { + databases = TestConfig.instance.getFilteredDatabasesUnderTest() + strategy = chooseRollbackStrategy() + strategy.prepareForRollback(databases) + } + + @Unroll + def "apply diff test against #testInput.referenceDatabase.name #testInput.referenceDatabase.version to targetDatabase #testInput.targetDatabase.name #testInput.targetDatabase.version"() { + given: "read input data for diff test" + Map<String, Object> argsMap = new HashMap() + argsMap.put("url", testInput.targetDatabase.url) + argsMap.put("username", testInput.targetDatabase.username) + argsMap.put("password", testInput.targetDatabase.password) + argsMap.put("referenceUrl", testInput.referenceDatabase.url) + argsMap.put("referenceUsername", testInput.referenceDatabase.username) + argsMap.put("referencePassword", testInput.referenceDatabase.password) + argsMap.put("changelogFile", testInput.pathToChangelogFile) + + and: "check databases are online" + assert testInput.targetDatabase.database.getConnection() instanceof JdbcConnection: "Target database " + + "${testInput.targetDatabase.name}${testInput.targetDatabase.version} is offline!" + assert testInput.referenceDatabase.database.getConnection() instanceof JdbcConnection: "Reference database " + + "${testInput.referenceDatabase.name}${testInput.referenceDatabase.version} is offline!" + + when: "execute update and diff commands" + + executeCommandScope("update", argsMap) + argsMap.put("excludeObjects", "(?i)posts, (?i)authors, (?i)databasechangelog, (?i)databasechangeloglock") + String generatedDiffContent = removeDatabaseInfoFromDiff(executeCommandScope("diff", argsMap).toString()) + + then: "validate generated diff" + String expectedDiffContent = removeDatabaseInfoFromDiff(getResourceContent(testInput.pathToExpectedDiffFile)) + assert expectedDiffContent == generatedDiffContent + + cleanup: "rollback changes" + strategy.performRollback(argsMap) + + where: + testInput << buildTestInput() + } + def cleanupSpec() { + strategy.cleanupDatabase(databases) + } +} diff --git a/src/main/resources/liquibase/harness/diff/changelogs/mariadb10.3_to_mariadb10.2.xml b/src/main/resources/liquibase/harness/diff/changelogs/mariadb10.3_to_mariadb10.2.xml deleted file mode 100644 index 308b4feae..000000000 --- a/src/main/resources/liquibase/harness/diff/changelogs/mariadb10.3_to_mariadb10.2.xml +++ /dev/null @@ -1,101 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<databaseChangeLog - xmlns="http://www.liquibase.org/xml/ns/dbchangelog" - xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog - http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-latest.xsd"> - <!-- FOREIGN KEY CONSTRAINT --> - - <changeSet id="1" author="as"> - <createTable tableName="test_table_base"> - <column name="id" type="INT"> - <constraints nullable="false" primaryKey="true"/> - </column> - </createTable> - </changeSet> - - <changeSet id="2" author="as"> - <createTable tableName="test_table_reference"> - <column name="id" type="INT"> - <constraints nullable="false" primaryKey="true"/> - </column> - <column name="test_column" type="INT"> - <constraints nullable="false" unique="true"/> - </column> - </createTable> - </changeSet> - - <changeSet id="4" author="as"> - <addForeignKeyConstraint baseColumnNames="id" - baseTableName="test_table_base" - constraintName="test_fk" - onDelete="CASCADE" - onUpdate="RESTRICT" - referencedColumnNames="test_column" - referencedTableName="test_table_reference" - validate="true"/> - <rollback> - <dropForeignKeyConstraint baseTableName="test_table_base" - constraintName="test_fk"/> - </rollback> - </changeSet> - - <!-- COLUMN --> - <changeSet id="5" author="as"> - <createTable tableName="test_table_for_column"> - <column name="id" type="INT"/> - </createTable> - </changeSet> - - <changeSet id="6" author="as"> - <addColumn tableName="test_table_for_column"> - <column name="varcharColumn" type="varchar(25)" value="INITIAL_VALUE"/> - <column name="intColumn" type="int" valueNumeric="5"/> - <column name="dateColumn" type="date" valueDate="2020-09-21"/> - </addColumn> - </changeSet> - - <!-- INDEX --> - <changeSet id="7" author="as" labels="tableForCreateIndex"> - <createTable tableName="test_table_for_index"> - <column name="id" type="INT"/> - </createTable> - </changeSet> - - <changeSet id="8" author="as"> - <createIndex indexName="idx_first_name" tableName="test_table_for_index"> - <column name="id"/> - </createIndex> - <rollback> - <dropIndex tableName="test_table_for_index" - indexName="idx_first_name"/> - </rollback> - </changeSet> - - <!-- VIEW --> - <changeSet id="10" author="as"> - <createView viewName="test_view"> - select id, first_name, last_name, email from authors - </createView> - </changeSet> - - <!-- UNIQUE CONSTRAINT --> - <changeSet id="11" author="as"> - <createTable tableName="test_table_for_uc"> - <column name="id" type="INT"/> - </createTable> - </changeSet> - - <changeSet id="12" author="as"> - <addUniqueConstraint columnNames="id" - constraintName="test_unique_constraint" - deferrable="true" - initiallyDeferred="true" - tableName="test_table_for_uc" - validate="true"/> - <rollback> - <dropUniqueConstraint tableName="test_table_for_uc" - constraintName="test_unique_constraint"/> - </rollback> - </changeSet> -</databaseChangeLog> \ No newline at end of file diff --git a/src/main/resources/liquibase/harness/diff/changelogs/mariadb10.5_to_mariadb10.4.xml b/src/main/resources/liquibase/harness/diff/changelogs/mariadb10.5_to_mariadb10.4.xml index a34d1b732..bda3c9cb0 100644 --- a/src/main/resources/liquibase/harness/diff/changelogs/mariadb10.5_to_mariadb10.4.xml +++ b/src/main/resources/liquibase/harness/diff/changelogs/mariadb10.5_to_mariadb10.4.xml @@ -1,6 +1,7 @@ <?xml version="1.0" encoding="UTF-8"?> <databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog" + xmlns:pro="http://www.liquibase.org/xml/ns/pro" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-latest.xsd"> @@ -109,4 +110,75 @@ constraintName="test_unique_constraint"/> </rollback> </changeSet> + + <!-- FUNCTION --> + <changeSet id="13" author="as"> + <pro:createFunction + encoding="UTF-8" + replaceIfExists="true" + functionName="test_function">CREATE FUNCTION test_function() + RETURNS VARCHAR(20) + BEGIN + RETURN 'Hello'; + END + </pro:createFunction> + <rollback> + <pro:dropFunction functionName="test_function"/> + </rollback> + </changeSet> + + <!-- PACKAGE --> + <changeSet id="14" author="as"> + <pro:createPackage encoding="UTF-8" + packageName="Test package">CREATE FUNCTION test_function1() + RETURNS VARCHAR(20) + BEGIN + RETURN 'Hello'; + END</pro:createPackage> + <rollback> + <pro:dropFunction functionName="test_function1"/> + </rollback> + </changeSet> + + <!-- PACKAGE BODY --> + <changeSet id="15" author="as"> + <pro:createPackageBody encoding="UTF-8" + packageBodyName="Test package">CREATE FUNCTION test_function2() + RETURNS VARCHAR(20) + BEGIN + RETURN 'Hello'; + END</pro:createPackageBody> + <rollback> + <pro:dropFunction functionName="test_function2"/> + </rollback> + </changeSet> + + <!-- TRIGGER --> + <changeSet id="16" author="as"> + <pro:createTrigger disabled="false" + encoding="UTF-8" + scope="test" + tableName="posts" + triggerName="test_trigger">CREATE TRIGGER test_trigger BEFORE UPDATE ON posts + FOR EACH ROW BEGIN END; + </pro:createTrigger> + <rollback> + <pro:dropTrigger triggerName="test_trigger" + tableName="posts"/> + </rollback> + </changeSet> + + <!-- PROCEDURE --> + <changeSet id="17" author="as"> + <comment>test procedure</comment> + <createProcedure + encoding="UTF-8" + procedureName="test_procedure">CREATE PROCEDURE test_procedure() + BEGIN + END; + </createProcedure> + <rollback> + <dropProcedure procedureName="test_procedure"/> + </rollback> + </changeSet> </databaseChangeLog> \ No newline at end of file diff --git a/src/main/resources/liquibase/harness/diff/changelogs/mariadb10.7_to_mariadb10.6.xml b/src/main/resources/liquibase/harness/diff/changelogs/mariadb10.7_to_mariadb10.6.xml index a34d1b732..5e867901c 100644 --- a/src/main/resources/liquibase/harness/diff/changelogs/mariadb10.7_to_mariadb10.6.xml +++ b/src/main/resources/liquibase/harness/diff/changelogs/mariadb10.7_to_mariadb10.6.xml @@ -1,6 +1,7 @@ <?xml version="1.0" encoding="UTF-8"?> <databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog" + xmlns:pro="http://www.liquibase.org/xml/ns/pro" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-latest.xsd"> @@ -27,16 +28,16 @@ <changeSet id="4" author="as"> <addForeignKeyConstraint baseColumnNames="id" - baseTableName="test_table_base" - constraintName="test_fk" - onDelete="CASCADE" - onUpdate="RESTRICT" - referencedColumnNames="test_column" - referencedTableName="test_table_reference" - validate="true"/> + baseTableName="test_table_base" + constraintName="test_fk" + onDelete="CASCADE" + onUpdate="RESTRICT" + referencedColumnNames="test_column" + referencedTableName="test_table_reference" + validate="true"/> <rollback> <dropForeignKeyConstraint baseTableName="test_table_base" - constraintName="test_fk"/> + constraintName="test_fk"/> </rollback> </changeSet> @@ -68,16 +69,16 @@ </createIndex> <rollback> <dropIndex tableName="test_table_for_index" - indexName="idx_first_name"/> + indexName="idx_first_name"/> </rollback> </changeSet> <!-- SEQUENCE --> <changeSet id="9" author="as"> <createSequence incrementBy="1" - minValue="1" - sequenceName="test_sequence" - startValue="1"/> + minValue="1" + sequenceName="test_sequence" + startValue="1"/> <rollback> <dropSequence sequenceName="test_sequence"/> </rollback> @@ -99,14 +100,85 @@ <changeSet id="12" author="as"> <addUniqueConstraint columnNames="id" - constraintName="test_unique_constraint" - deferrable="true" - initiallyDeferred="true" - tableName="test_table_for_uc" - validate="true"/> + constraintName="test_unique_constraint" + deferrable="true" + initiallyDeferred="true" + tableName="test_table_for_uc" + validate="true"/> <rollback> <dropUniqueConstraint tableName="test_table_for_uc" - constraintName="test_unique_constraint"/> + constraintName="test_unique_constraint"/> + </rollback> + </changeSet> + + <!-- FUNCTION --> + <changeSet id="13" author="as"> + <pro:createFunction + encoding="UTF-8" + replaceIfExists="true" + functionName="test_function">CREATE FUNCTION test_function() + RETURNS VARCHAR(20) + BEGIN + RETURN 'Hello'; + END + </pro:createFunction> + <rollback> + <pro:dropFunction functionName="test_function"/> + </rollback> + </changeSet> + + <!-- PACKAGE --> + <changeSet id="14" author="as"> + <pro:createPackage encoding="UTF-8" + packageName="Test package">CREATE FUNCTION test_function1() + RETURNS VARCHAR(20) + BEGIN + RETURN 'Hello'; + END</pro:createPackage> + <rollback> + <pro:dropFunction functionName="test_function1"/> + </rollback> + </changeSet> + + <!-- PACKAGE BODY --> + <changeSet id="15" author="as"> + <pro:createPackageBody encoding="UTF-8" + packageBodyName="Test package">CREATE FUNCTION test_function2() + RETURNS VARCHAR(20) + BEGIN + RETURN 'Hello'; + END</pro:createPackageBody> + <rollback> + <pro:dropFunction functionName="test_function2"/> + </rollback> + </changeSet> + + <!-- TRIGGER --> + <changeSet id="16" author="as"> + <pro:createTrigger disabled="false" + encoding="UTF-8" + scope="test" + tableName="posts" + triggerName="test_trigger">CREATE TRIGGER test_trigger BEFORE UPDATE ON posts + FOR EACH ROW BEGIN END; + </pro:createTrigger> + <rollback> + <pro:dropTrigger triggerName="test_trigger" + tableName="posts"/> + </rollback> + </changeSet> + + <!-- PROCEDURE --> + <changeSet id="17" author="as"> + <comment>test procedure</comment> + <createProcedure + encoding="UTF-8" + procedureName="test_procedure">CREATE PROCEDURE test_procedure() + BEGIN + END; + </createProcedure> + <rollback> + <dropProcedure procedureName="test_procedure"/> </rollback> </changeSet> </databaseChangeLog> \ No newline at end of file diff --git a/src/main/resources/liquibase/harness/diff/changelogs/mssql2019_to_mssql2022.xml b/src/main/resources/liquibase/harness/diff/changelogs/mssql2019_to_mssql2022.xml deleted file mode 100644 index e361c0a13..000000000 --- a/src/main/resources/liquibase/harness/diff/changelogs/mssql2019_to_mssql2022.xml +++ /dev/null @@ -1,116 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<databaseChangeLog - xmlns="http://www.liquibase.org/xml/ns/dbchangelog" - xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog - http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-latest.xsd"> - <!-- FOREIGN KEY CONSTRAINT --> - <changeSet id="1" author="as" labels="ref"> - <createTable tableName="test_table_base"> - <column name="id" type="INT"> - <constraints nullable="false" primaryKey="true"/> - </column> - </createTable> - <rollback> - <dropTable tableName="test_table_base"/> - </rollback> - </changeSet> - <changeSet id="2" author="as" labels="ref"> - <createTable tableName="test_table_reference"> - <column name="id" type="INT"/> - <column name="test_column" type="INT"> - <constraints nullable="false" primaryKey="true"/> - </column> - </createTable> - <rollback> - <dropTable tableName="test_table_reference"/> - </rollback> - </changeSet> - - <changeSet id="3" author="as"> - <createIndex tableName="test_table_reference" indexName="test_table_reference_index"> - <column name="test_column"/> - </createIndex> - </changeSet> - <changeSet id="4" author="as"> - <addForeignKeyConstraint baseColumnNames="id" - baseTableName="test_table_base" - constraintName="test_fk" - onDelete="CASCADE" - onUpdate="RESTRICT" - referencedColumnNames="test_column" - referencedTableName="test_table_reference" - validate="true"/> - <rollback> - <dropForeignKeyConstraint baseTableName="test_table_base" - constraintName="test_fk"/> - </rollback> - </changeSet> - - <!-- COLUMN --> - <changeSet id="5" author="as"> - <createTable tableName="test_table_for_column"> - <column name="id" type="INT"/> - </createTable> - </changeSet> - - <changeSet id="6" author="as"> - <addColumn tableName="test_table_for_column"> - <column name="varcharColumn" type="varchar(25)" value="INITIAL_VALUE"/> - <column name="intColumn" type="int" valueNumeric="5"/> - <column name="dateColumn" type="date" valueDate="2020-09-21"/> - </addColumn> - </changeSet> - - <!-- INDEX --> - <changeSet id="7" author="as"> - <createTable tableName="test_table_for_index"> - <column name="id" type="INT"/> - </createTable> - </changeSet> - - <changeSet id="8" author="as"> - <createIndex indexName="idx_first_name" tableName="test_table_for_index"> - <column name="id"/> - </createIndex> - <rollback> - <dropIndex tableName="test_table_for_index" - indexName="idx_first_name"/> - </rollback> - </changeSet> - - <!-- UNIQUE CONSTRAINT --> - <changeSet id="9" author="as"> - <addUniqueConstraint columnNames="id" - constraintName="test_unique_constraint" - deferrable="true" - initiallyDeferred="true" - tableName="test_table_base" - validate="true"/> - <rollback> - <dropUniqueConstraint tableName="test_table_base" - constraintName="test_unique_constraint"/> - </rollback> - </changeSet> - - <!-- SEQUENCE --> - <changeSet id="10" author="as"> - <createSequence incrementBy="1" - minValue="1" - sequenceName="test_sequence" - startValue="1"/> - <rollback> - <dropSequence sequenceName="test_sequence"/> - </rollback> - </changeSet> - - <!-- VIEW --> - <changeSet id="11" author="as"> - <createView viewName="test_view"> - select * from test_table_reference - </createView> - <rollback> - <dropView viewName="test_view"/> - </rollback> - </changeSet> -</databaseChangeLog> \ No newline at end of file diff --git a/src/main/resources/liquibase/harness/diff/changelogs/mssql2022_to_mssql2017.xml b/src/main/resources/liquibase/harness/diff/changelogs/mssql2022_to_mssql2017.xml index d14ea3426..c3f32948d 100644 --- a/src/main/resources/liquibase/harness/diff/changelogs/mssql2022_to_mssql2017.xml +++ b/src/main/resources/liquibase/harness/diff/changelogs/mssql2022_to_mssql2017.xml @@ -1,6 +1,7 @@ <?xml version="1.0" encoding="UTF-8"?> <databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog" + xmlns:pro="http://www.liquibase.org/xml/ns/pro" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-latest.xsd"> @@ -113,4 +114,75 @@ <dropView viewName="test_view"/> </rollback> </changeSet> + + <!-- FUNCTION --> + <changeSet id="12" author="as"> + <pro:createFunction + encoding="UTF-8" + replaceIfExists="true" + functionName="test_function">CREATE FUNCTION test_function() + RETURNS VARCHAR(20) + BEGIN + RETURN 'Hello'; + END + </pro:createFunction> + <rollback> + <pro:dropFunction functionName="test_function"/> + </rollback> + </changeSet> + + <!-- PACKAGE --> + <changeSet id="13" author="as"> + <pro:createPackage encoding="UTF-8" + packageName="Test package">CREATE FUNCTION test_function1() + RETURNS VARCHAR(20) + BEGIN + RETURN 'Hello'; + END</pro:createPackage> + <rollback> + <pro:dropFunction functionName="test_function1"/> + </rollback> + </changeSet> + + <!-- PACKAGE BODY --> + <changeSet id="14" author="as"> + <pro:createPackageBody encoding="UTF-8" + packageBodyName="Test package">CREATE FUNCTION test_function2() + RETURNS VARCHAR(20) + BEGIN + RETURN 'Hello'; + END</pro:createPackageBody> + <rollback> + <pro:dropFunction functionName="test_function2"/> + </rollback> + </changeSet> + + <!-- TRIGGER --> + <changeSet id="15" author="as"> + <pro:createTrigger disabled="false" + encoding="UTF-8" + scope="test" + tableName="posts" + triggerName="test_trigger">CREATE TRIGGER test_trigger ON posts AFTER UPDATE AS RAISERROR ('error', 1, 1); + </pro:createTrigger> + <rollback> + <pro:dropTrigger triggerName="test_trigger" + tableName="posts"/> + </rollback> + </changeSet> + + <!-- PROCEDURE --> + <changeSet id="16" author="as"> + <comment>test procedure</comment> + <createProcedure + + dbms="mssql" + encoding="UTF-8" + procedureName="test_procedure">CREATE PROCEDURE test_procedure + AS + </createProcedure> + <rollback> + <dropProcedure procedureName="test_procedure"/> + </rollback> + </changeSet> </databaseChangeLog> \ No newline at end of file diff --git a/src/main/resources/liquibase/harness/diff/changelogs/mssql2022_to_mssql2019.xml b/src/main/resources/liquibase/harness/diff/changelogs/mssql2022_to_mssql2019.xml index e361c0a13..cf481fa9b 100644 --- a/src/main/resources/liquibase/harness/diff/changelogs/mssql2022_to_mssql2019.xml +++ b/src/main/resources/liquibase/harness/diff/changelogs/mssql2022_to_mssql2019.xml @@ -1,8 +1,9 @@ <?xml version="1.0" encoding="UTF-8"?> <databaseChangeLog - xmlns="http://www.liquibase.org/xml/ns/dbchangelog" - xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog + xmlns="http://www.liquibase.org/xml/ns/dbchangelog" + xmlns:pro="http://www.liquibase.org/xml/ns/pro" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-latest.xsd"> <!-- FOREIGN KEY CONSTRAINT --> <changeSet id="1" author="as" labels="ref"> @@ -34,16 +35,16 @@ </changeSet> <changeSet id="4" author="as"> <addForeignKeyConstraint baseColumnNames="id" - baseTableName="test_table_base" - constraintName="test_fk" - onDelete="CASCADE" - onUpdate="RESTRICT" - referencedColumnNames="test_column" - referencedTableName="test_table_reference" - validate="true"/> + baseTableName="test_table_base" + constraintName="test_fk" + onDelete="CASCADE" + onUpdate="RESTRICT" + referencedColumnNames="test_column" + referencedTableName="test_table_reference" + validate="true"/> <rollback> <dropForeignKeyConstraint baseTableName="test_table_base" - constraintName="test_fk"/> + constraintName="test_fk"/> </rollback> </changeSet> @@ -75,30 +76,30 @@ </createIndex> <rollback> <dropIndex tableName="test_table_for_index" - indexName="idx_first_name"/> + indexName="idx_first_name"/> </rollback> </changeSet> <!-- UNIQUE CONSTRAINT --> <changeSet id="9" author="as"> <addUniqueConstraint columnNames="id" - constraintName="test_unique_constraint" - deferrable="true" - initiallyDeferred="true" - tableName="test_table_base" - validate="true"/> + constraintName="test_unique_constraint" + deferrable="true" + initiallyDeferred="true" + tableName="test_table_base" + validate="true"/> <rollback> <dropUniqueConstraint tableName="test_table_base" - constraintName="test_unique_constraint"/> + constraintName="test_unique_constraint"/> </rollback> </changeSet> <!-- SEQUENCE --> <changeSet id="10" author="as"> <createSequence incrementBy="1" - minValue="1" - sequenceName="test_sequence" - startValue="1"/> + minValue="1" + sequenceName="test_sequence" + startValue="1"/> <rollback> <dropSequence sequenceName="test_sequence"/> </rollback> @@ -113,4 +114,75 @@ <dropView viewName="test_view"/> </rollback> </changeSet> + + <!-- FUNCTION --> + <changeSet id="12" author="as"> + <pro:createFunction + encoding="UTF-8" + replaceIfExists="true" + functionName="test_function">CREATE FUNCTION test_function() + RETURNS VARCHAR(20) + BEGIN + RETURN 'Hello'; + END + </pro:createFunction> + <rollback> + <pro:dropFunction functionName="test_function"/> + </rollback> + </changeSet> + + <!-- PACKAGE --> + <changeSet id="13" author="as"> + <pro:createPackage encoding="UTF-8" + packageName="Test package">CREATE FUNCTION test_function1() + RETURNS VARCHAR(20) + BEGIN + RETURN 'Hello'; + END</pro:createPackage> + <rollback> + <pro:dropFunction functionName="test_function1"/> + </rollback> + </changeSet> + + <!-- PACKAGE BODY --> + <changeSet id="14" author="as"> + <pro:createPackageBody encoding="UTF-8" + packageBodyName="Test package">CREATE FUNCTION test_function2() + RETURNS VARCHAR(20) + BEGIN + RETURN 'Hello'; + END</pro:createPackageBody> + <rollback> + <pro:dropFunction functionName="test_function2"/> + </rollback> + </changeSet> + + <!-- TRIGGER --> + <changeSet id="15" author="as"> + <pro:createTrigger disabled="false" + encoding="UTF-8" + scope="test" + tableName="posts" + triggerName="test_trigger">CREATE TRIGGER test_trigger ON posts AFTER UPDATE AS RAISERROR ('error', 1, 1); + </pro:createTrigger> + <rollback> + <pro:dropTrigger triggerName="test_trigger" + tableName="posts"/> + </rollback> + </changeSet> + + <!-- PROCEDURE --> + <changeSet id="16" author="as"> + <comment>test procedure</comment> + <createProcedure + + dbms="mssql" + encoding="UTF-8" + procedureName="test_procedure">CREATE PROCEDURE test_procedure + AS + </createProcedure> + <rollback> + <dropProcedure procedureName="test_procedure"/> + </rollback> + </changeSet> </databaseChangeLog> \ No newline at end of file diff --git a/src/main/resources/liquibase/harness/diff/changelogs/mysql8.4_to_mysql5.7.xml b/src/main/resources/liquibase/harness/diff/changelogs/mysql8.4_to_mysql5.7.xml new file mode 100644 index 000000000..25d9f3f9c --- /dev/null +++ b/src/main/resources/liquibase/harness/diff/changelogs/mysql8.4_to_mysql5.7.xml @@ -0,0 +1,174 @@ +<?xml version="1.0" encoding="UTF-8"?> +<databaseChangeLog + xmlns="http://www.liquibase.org/xml/ns/dbchangelog" + xmlns:pro="http://www.liquibase.org/xml/ns/pro" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog + http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-latest.xsd"> + <!-- FOREIGN KEY CONSTRAINT --> + + <changeSet id="1" author="as"> + <createTable tableName="test_table_base"> + <column name="id" type="INT"> + <constraints nullable="false" primaryKey="true"/> + </column> + </createTable> + </changeSet> + + <changeSet id="2" author="as"> + <createTable tableName="test_table_reference"> + <column name="id" type="INT"> + <constraints nullable="false" primaryKey="true"/> + </column> + <column name="test_column" type="INT"> + <constraints nullable="false" unique="true"/> + </column> + </createTable> + </changeSet> + + <changeSet id="4" author="as"> + <addForeignKeyConstraint baseColumnNames="id" + baseTableName="test_table_base" + constraintName="test_fk" + onDelete="CASCADE" + onUpdate="RESTRICT" + referencedColumnNames="test_column" + referencedTableName="test_table_reference" + validate="true"/> + <rollback> + <dropForeignKeyConstraint baseTableName="test_table_base" + constraintName="test_fk"/> + </rollback> + </changeSet> + + <!-- COLUMN --> + <changeSet id="5" author="as"> + <createTable tableName="test_table_for_column"> + <column name="id" type="INT"/> + </createTable> + </changeSet> + + <changeSet id="6" author="as"> + <addColumn tableName="test_table_for_column"> + <column name="varcharColumn" type="varchar(25)" value="INITIAL_VALUE"/> + <column name="intColumn" type="int" valueNumeric="5"/> + <column name="dateColumn" type="date" valueDate="2020-09-21"/> + </addColumn> + </changeSet> + + <!-- INDEX --> + <changeSet id="7" author="as" labels="tableForCreateIndex"> + <createTable tableName="test_table_for_index"> + <column name="id" type="INT"/> + </createTable> + </changeSet> + + <changeSet id="8" author="as"> + <createIndex indexName="idx_first_name" tableName="test_table_for_index"> + <column name="id"/> + </createIndex> + <rollback> + <dropIndex tableName="test_table_for_index" + indexName="idx_first_name"/> + </rollback> + </changeSet> + + <!-- VIEW --> + <changeSet id="10" author="as"> + <createView viewName="test_view"> + select id, first_name, last_name, email from authors + </createView> + </changeSet> + + <!-- UNIQUE CONSTRAINT --> + <changeSet id="11" author="as"> + <createTable tableName="test_table_for_uc"> + <column name="id" type="INT"/> + </createTable> + </changeSet> + + <changeSet id="12" author="as"> + <addUniqueConstraint columnNames="id" + constraintName="test_unique_constraint" + deferrable="true" + initiallyDeferred="true" + tableName="test_table_for_uc" + validate="true"/> + <rollback> + <dropUniqueConstraint tableName="test_table_for_uc" + constraintName="test_unique_constraint"/> + </rollback> + </changeSet> + + + <!-- FUNCTION --> + <changeSet id="13" author="as"> + <pro:createFunction + encoding="UTF-8" + replaceIfExists="true" + functionName="test_function">CREATE FUNCTION test_function() + RETURNS VARCHAR(20) + BEGIN + RETURN 'Hello'; + END + </pro:createFunction> + <rollback> + <pro:dropFunction functionName="test_function"/> + </rollback> + </changeSet> + + <!-- PACKAGE --> + <changeSet id="14" author="as"> + <pro:createPackage encoding="UTF-8" + packageName="Test package">CREATE FUNCTION test_function1() + RETURNS VARCHAR(20) + BEGIN + RETURN 'Hello'; + END</pro:createPackage> + <rollback> + <pro:dropFunction functionName="test_function1"/> + </rollback> + </changeSet> + + <!-- PACKAGE BODY --> + <changeSet id="15" author="as"> + <pro:createPackage encoding="UTF-8" + packageName="Test package">CREATE FUNCTION test_function2() + RETURNS VARCHAR(20) + BEGIN + RETURN 'Hello'; + END</pro:createPackage> + <rollback> + <pro:dropFunction functionName="test_function2"/> + </rollback> + </changeSet> + + <!-- TRIGGER --> + <changeSet id="16" author="as"> + <pro:createTrigger disabled="false" + encoding="UTF-8" + scope="test" + tableName="posts" + triggerName="test_trigger">CREATE TRIGGER test_trigger BEFORE UPDATE ON posts + FOR EACH ROW BEGIN END; + </pro:createTrigger> + <rollback> + <pro:dropTrigger triggerName="test_trigger" + tableName="posts"/> + </rollback> + </changeSet> + + <!-- PROCEDURE --> + <changeSet id="17" author="as"> + <comment>test procedure</comment> + <createProcedure + encoding="UTF-8" + procedureName="test_procedure">CREATE PROCEDURE test_procedure() + BEGIN + END; + </createProcedure> + <rollback> + <dropProcedure procedureName="test_procedure"/> + </rollback> + </changeSet> +</databaseChangeLog> \ No newline at end of file diff --git a/src/main/resources/liquibase/harness/diff/changelogs/mysql8_to_mysql5.6.xml b/src/main/resources/liquibase/harness/diff/changelogs/mysql8_to_mysql5.6.xml new file mode 100644 index 000000000..2216bea77 --- /dev/null +++ b/src/main/resources/liquibase/harness/diff/changelogs/mysql8_to_mysql5.6.xml @@ -0,0 +1,173 @@ +<?xml version="1.0" encoding="UTF-8"?> +<databaseChangeLog + xmlns="http://www.liquibase.org/xml/ns/dbchangelog" + xmlns:pro="http://www.liquibase.org/xml/ns/pro" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog + http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-latest.xsd"> + <!-- FOREIGN KEY CONSTRAINT --> + + <changeSet id="1" author="as"> + <createTable tableName="test_table_base"> + <column name="id" type="INT"> + <constraints nullable="false" primaryKey="true"/> + </column> + </createTable> + </changeSet> + + <changeSet id="2" author="as"> + <createTable tableName="test_table_reference"> + <column name="id" type="INT"> + <constraints nullable="false" primaryKey="true"/> + </column> + <column name="test_column" type="INT"> + <constraints nullable="false" unique="true"/> + </column> + </createTable> + </changeSet> + + <changeSet id="4" author="as"> + <addForeignKeyConstraint baseColumnNames="id" + baseTableName="test_table_base" + constraintName="test_fk" + onDelete="CASCADE" + onUpdate="RESTRICT" + referencedColumnNames="test_column" + referencedTableName="test_table_reference" + validate="true"/> + <rollback> + <dropForeignKeyConstraint baseTableName="test_table_base" + constraintName="test_fk"/> + </rollback> + </changeSet> + + <!-- COLUMN --> + <changeSet id="5" author="as"> + <createTable tableName="test_table_for_column"> + <column name="id" type="INT"/> + </createTable> + </changeSet> + + <changeSet id="6" author="as"> + <addColumn tableName="test_table_for_column"> + <column name="varcharColumn" type="varchar(25)" value="INITIAL_VALUE"/> + <column name="intColumn" type="int" valueNumeric="5"/> + <column name="dateColumn" type="date" valueDate="2020-09-21"/> + </addColumn> + </changeSet> + + <!-- INDEX --> + <changeSet id="7" author="as" labels="tableForCreateIndex"> + <createTable tableName="test_table_for_index"> + <column name="id" type="INT"/> + </createTable> + </changeSet> + + <changeSet id="8" author="as"> + <createIndex indexName="idx_first_name" tableName="test_table_for_index"> + <column name="id"/> + </createIndex> + <rollback> + <dropIndex tableName="test_table_for_index" + indexName="idx_first_name"/> + </rollback> + </changeSet> + + <!-- VIEW --> + <changeSet id="10" author="as"> + <createView viewName="test_view"> + select id, first_name, last_name, email from authors + </createView> + </changeSet> + + <!-- UNIQUE CONSTRAINT --> + <changeSet id="11" author="as"> + <createTable tableName="test_table_for_uc"> + <column name="id" type="INT"/> + </createTable> + </changeSet> + + <changeSet id="12" author="as"> + <addUniqueConstraint columnNames="id" + constraintName="test_unique_constraint" + deferrable="true" + initiallyDeferred="true" + tableName="test_table_for_uc" + validate="true"/> + <rollback> + <dropUniqueConstraint tableName="test_table_for_uc" + constraintName="test_unique_constraint"/> + </rollback> + </changeSet> + + <!-- FUNCTION --> + <changeSet id="13" author="as"> + <pro:createFunction + encoding="UTF-8" + replaceIfExists="true" + functionName="test_function">CREATE FUNCTION test_function() + RETURNS VARCHAR(20) + BEGIN + RETURN 'Hello'; + END + </pro:createFunction> + <rollback> + <pro:dropFunction functionName="test_function"/> + </rollback> + </changeSet> + + <!-- PACKAGE --> + <changeSet id="14" author="as"> + <pro:createPackage encoding="UTF-8" + packageName="Test package">CREATE FUNCTION test_function1() + RETURNS VARCHAR(20) + BEGIN + RETURN 'Hello'; + END</pro:createPackage> + <rollback> + <pro:dropFunction functionName="test_function1"/> + </rollback> + </changeSet> + + <!-- PACKAGE BODY --> + <changeSet id="15" author="as"> + <pro:createPackage encoding="UTF-8" + packageName="Test package">CREATE FUNCTION test_function2() + RETURNS VARCHAR(20) + BEGIN + RETURN 'Hello'; + END</pro:createPackage> + <rollback> + <pro:dropFunction functionName="test_function2"/> + </rollback> + </changeSet> + + <!-- TRIGGER --> + <changeSet id="16" author="as"> + <pro:createTrigger disabled="false" + encoding="UTF-8" + scope="test" + tableName="posts" + triggerName="test_trigger">CREATE TRIGGER test_trigger BEFORE UPDATE ON posts + FOR EACH ROW BEGIN END; + </pro:createTrigger> + <rollback> + <pro:dropTrigger triggerName="test_trigger" + tableName="posts"/> + </rollback> + </changeSet> + + <!-- PROCEDURE --> + <changeSet id="17" author="as"> + <comment>test procedure</comment> + <createProcedure + encoding="UTF-8" + procedureName="test_procedure">CREATE PROCEDURE test_procedure() + BEGIN + END; + </createProcedure> + <rollback> + <dropProcedure procedureName="test_procedure"/> + </rollback> + </changeSet> +</databaseChangeLog> \ No newline at end of file diff --git a/src/main/resources/liquibase/harness/diff/changelogs/mysql8_to_mysql5.7.xml b/src/main/resources/liquibase/harness/diff/changelogs/mysql8_to_mysql5.7.xml deleted file mode 100644 index 308b4feae..000000000 --- a/src/main/resources/liquibase/harness/diff/changelogs/mysql8_to_mysql5.7.xml +++ /dev/null @@ -1,101 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<databaseChangeLog - xmlns="http://www.liquibase.org/xml/ns/dbchangelog" - xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog - http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-latest.xsd"> - <!-- FOREIGN KEY CONSTRAINT --> - - <changeSet id="1" author="as"> - <createTable tableName="test_table_base"> - <column name="id" type="INT"> - <constraints nullable="false" primaryKey="true"/> - </column> - </createTable> - </changeSet> - - <changeSet id="2" author="as"> - <createTable tableName="test_table_reference"> - <column name="id" type="INT"> - <constraints nullable="false" primaryKey="true"/> - </column> - <column name="test_column" type="INT"> - <constraints nullable="false" unique="true"/> - </column> - </createTable> - </changeSet> - - <changeSet id="4" author="as"> - <addForeignKeyConstraint baseColumnNames="id" - baseTableName="test_table_base" - constraintName="test_fk" - onDelete="CASCADE" - onUpdate="RESTRICT" - referencedColumnNames="test_column" - referencedTableName="test_table_reference" - validate="true"/> - <rollback> - <dropForeignKeyConstraint baseTableName="test_table_base" - constraintName="test_fk"/> - </rollback> - </changeSet> - - <!-- COLUMN --> - <changeSet id="5" author="as"> - <createTable tableName="test_table_for_column"> - <column name="id" type="INT"/> - </createTable> - </changeSet> - - <changeSet id="6" author="as"> - <addColumn tableName="test_table_for_column"> - <column name="varcharColumn" type="varchar(25)" value="INITIAL_VALUE"/> - <column name="intColumn" type="int" valueNumeric="5"/> - <column name="dateColumn" type="date" valueDate="2020-09-21"/> - </addColumn> - </changeSet> - - <!-- INDEX --> - <changeSet id="7" author="as" labels="tableForCreateIndex"> - <createTable tableName="test_table_for_index"> - <column name="id" type="INT"/> - </createTable> - </changeSet> - - <changeSet id="8" author="as"> - <createIndex indexName="idx_first_name" tableName="test_table_for_index"> - <column name="id"/> - </createIndex> - <rollback> - <dropIndex tableName="test_table_for_index" - indexName="idx_first_name"/> - </rollback> - </changeSet> - - <!-- VIEW --> - <changeSet id="10" author="as"> - <createView viewName="test_view"> - select id, first_name, last_name, email from authors - </createView> - </changeSet> - - <!-- UNIQUE CONSTRAINT --> - <changeSet id="11" author="as"> - <createTable tableName="test_table_for_uc"> - <column name="id" type="INT"/> - </createTable> - </changeSet> - - <changeSet id="12" author="as"> - <addUniqueConstraint columnNames="id" - constraintName="test_unique_constraint" - deferrable="true" - initiallyDeferred="true" - tableName="test_table_for_uc" - validate="true"/> - <rollback> - <dropUniqueConstraint tableName="test_table_for_uc" - constraintName="test_unique_constraint"/> - </rollback> - </changeSet> -</databaseChangeLog> \ No newline at end of file diff --git a/src/main/resources/liquibase/harness/diff/changelogs/oracle18.4.0_to_oracle18.3.0.xml b/src/main/resources/liquibase/harness/diff/changelogs/oracle18.4.0_to_oracle18.3.0.xml deleted file mode 100644 index a1b77381e..000000000 --- a/src/main/resources/liquibase/harness/diff/changelogs/oracle18.4.0_to_oracle18.3.0.xml +++ /dev/null @@ -1,111 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<databaseChangeLog - xmlns="http://www.liquibase.org/xml/ns/dbchangelog" - xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog - http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-latest.xsd"> - <!-- FOREIGN KEY CONSTRAINT --> - <changeSet id="1" author="as" labels="ref"> - <createTable tableName="test_table_base"> - <column name="id" type="INT"> - <constraints nullable="false" primaryKey="true"/> - </column> - </createTable> - <rollback> - <dropTable tableName="test_table_base"/> - </rollback> - </changeSet> - <changeSet id="2" author="as" labels="ref"> - <createTable tableName="test_table_reference"> - <column name="id" type="INT"/> - <column name="test_column" type="INT"> - <constraints nullable="false" primaryKey="true"/> - </column> - </createTable> - <rollback> - <dropTable tableName="test_table_reference"/> - </rollback> - </changeSet> - - <changeSet id="4" author="as"> - <addForeignKeyConstraint baseColumnNames="id" - baseTableName="test_table_base" - constraintName="test_fk" - onDelete="CASCADE" - onUpdate="RESTRICT" - referencedColumnNames="test_column" - referencedTableName="test_table_reference" - validate="true"/> - <rollback> - <dropForeignKeyConstraint baseTableName="test_table_base" - constraintName="test_fk"/> - </rollback> - </changeSet> - - <!-- COLUMN --> - <changeSet id="5" author="as"> - <createTable tableName="test_table_for_column"> - <column name="id" type="INT"/> - </createTable> - </changeSet> - - <changeSet id="6" author="as"> - <addColumn tableName="test_table_for_column"> - <column name="varcharColumn" type="varchar(25)" value="INITIAL_VALUE"/> - <column name="intColumn" type="int" valueNumeric="5"/> - <column name="dateColumn" type="date" valueDate="2020-09-21"/> - </addColumn> - </changeSet> - - <!-- INDEX --> - <changeSet id="7" author="as"> - <createTable tableName="test_table_for_index"> - <column name="id" type="INT"/> - </createTable> - </changeSet> - - <changeSet id="8" author="as"> - <createIndex indexName="idx_first_name" tableName="test_table_for_index"> - <column name="id"/> - </createIndex> - <rollback> - <dropIndex tableName="test_table_for_index" - indexName="idx_first_name"/> - </rollback> - </changeSet> - - <!-- UNIQUE CONSTRAINT --> - <changeSet id="9" author="as"> - <addUniqueConstraint columnNames="id" - constraintName="test_unique_constraint" - deferrable="true" - initiallyDeferred="true" - tableName="test_table_reference" - validate="true"/> - <rollback> - <dropUniqueConstraint tableName="test_table_reference" - constraintName="test_unique_constraint"/> - </rollback> - </changeSet> - - <!-- SEQUENCE --> - <changeSet id="10" author="as"> - <createSequence incrementBy="1" - minValue="1" - sequenceName="test_sequence" - startValue="1"/> - <rollback> - <dropSequence sequenceName="test_sequence"/> - </rollback> - </changeSet> - - <!-- VIEW --> - <changeSet id="11" author="as"> - <createView viewName="test_view"> - select * from test_table_reference - </createView> - <rollback> - <dropView viewName="test_view"/> - </rollback> - </changeSet> -</databaseChangeLog> \ No newline at end of file diff --git a/src/main/resources/liquibase/harness/diff/changelogs/oracle18.4.0_to_oracle21.3.0.xml b/src/main/resources/liquibase/harness/diff/changelogs/oracle18.4.0_to_oracle21.3.0.xml deleted file mode 100644 index a1b77381e..000000000 --- a/src/main/resources/liquibase/harness/diff/changelogs/oracle18.4.0_to_oracle21.3.0.xml +++ /dev/null @@ -1,111 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<databaseChangeLog - xmlns="http://www.liquibase.org/xml/ns/dbchangelog" - xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog - http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-latest.xsd"> - <!-- FOREIGN KEY CONSTRAINT --> - <changeSet id="1" author="as" labels="ref"> - <createTable tableName="test_table_base"> - <column name="id" type="INT"> - <constraints nullable="false" primaryKey="true"/> - </column> - </createTable> - <rollback> - <dropTable tableName="test_table_base"/> - </rollback> - </changeSet> - <changeSet id="2" author="as" labels="ref"> - <createTable tableName="test_table_reference"> - <column name="id" type="INT"/> - <column name="test_column" type="INT"> - <constraints nullable="false" primaryKey="true"/> - </column> - </createTable> - <rollback> - <dropTable tableName="test_table_reference"/> - </rollback> - </changeSet> - - <changeSet id="4" author="as"> - <addForeignKeyConstraint baseColumnNames="id" - baseTableName="test_table_base" - constraintName="test_fk" - onDelete="CASCADE" - onUpdate="RESTRICT" - referencedColumnNames="test_column" - referencedTableName="test_table_reference" - validate="true"/> - <rollback> - <dropForeignKeyConstraint baseTableName="test_table_base" - constraintName="test_fk"/> - </rollback> - </changeSet> - - <!-- COLUMN --> - <changeSet id="5" author="as"> - <createTable tableName="test_table_for_column"> - <column name="id" type="INT"/> - </createTable> - </changeSet> - - <changeSet id="6" author="as"> - <addColumn tableName="test_table_for_column"> - <column name="varcharColumn" type="varchar(25)" value="INITIAL_VALUE"/> - <column name="intColumn" type="int" valueNumeric="5"/> - <column name="dateColumn" type="date" valueDate="2020-09-21"/> - </addColumn> - </changeSet> - - <!-- INDEX --> - <changeSet id="7" author="as"> - <createTable tableName="test_table_for_index"> - <column name="id" type="INT"/> - </createTable> - </changeSet> - - <changeSet id="8" author="as"> - <createIndex indexName="idx_first_name" tableName="test_table_for_index"> - <column name="id"/> - </createIndex> - <rollback> - <dropIndex tableName="test_table_for_index" - indexName="idx_first_name"/> - </rollback> - </changeSet> - - <!-- UNIQUE CONSTRAINT --> - <changeSet id="9" author="as"> - <addUniqueConstraint columnNames="id" - constraintName="test_unique_constraint" - deferrable="true" - initiallyDeferred="true" - tableName="test_table_reference" - validate="true"/> - <rollback> - <dropUniqueConstraint tableName="test_table_reference" - constraintName="test_unique_constraint"/> - </rollback> - </changeSet> - - <!-- SEQUENCE --> - <changeSet id="10" author="as"> - <createSequence incrementBy="1" - minValue="1" - sequenceName="test_sequence" - startValue="1"/> - <rollback> - <dropSequence sequenceName="test_sequence"/> - </rollback> - </changeSet> - - <!-- VIEW --> - <changeSet id="11" author="as"> - <createView viewName="test_view"> - select * from test_table_reference - </createView> - <rollback> - <dropView viewName="test_view"/> - </rollback> - </changeSet> -</databaseChangeLog> \ No newline at end of file diff --git a/src/main/resources/liquibase/harness/diff/changelogs/oracle21.3.0_to_oracle18.4.0.xml b/src/main/resources/liquibase/harness/diff/changelogs/oracle21.3.0_to_oracle18.4.0.xml deleted file mode 100644 index a1b77381e..000000000 --- a/src/main/resources/liquibase/harness/diff/changelogs/oracle21.3.0_to_oracle18.4.0.xml +++ /dev/null @@ -1,111 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<databaseChangeLog - xmlns="http://www.liquibase.org/xml/ns/dbchangelog" - xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog - http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-latest.xsd"> - <!-- FOREIGN KEY CONSTRAINT --> - <changeSet id="1" author="as" labels="ref"> - <createTable tableName="test_table_base"> - <column name="id" type="INT"> - <constraints nullable="false" primaryKey="true"/> - </column> - </createTable> - <rollback> - <dropTable tableName="test_table_base"/> - </rollback> - </changeSet> - <changeSet id="2" author="as" labels="ref"> - <createTable tableName="test_table_reference"> - <column name="id" type="INT"/> - <column name="test_column" type="INT"> - <constraints nullable="false" primaryKey="true"/> - </column> - </createTable> - <rollback> - <dropTable tableName="test_table_reference"/> - </rollback> - </changeSet> - - <changeSet id="4" author="as"> - <addForeignKeyConstraint baseColumnNames="id" - baseTableName="test_table_base" - constraintName="test_fk" - onDelete="CASCADE" - onUpdate="RESTRICT" - referencedColumnNames="test_column" - referencedTableName="test_table_reference" - validate="true"/> - <rollback> - <dropForeignKeyConstraint baseTableName="test_table_base" - constraintName="test_fk"/> - </rollback> - </changeSet> - - <!-- COLUMN --> - <changeSet id="5" author="as"> - <createTable tableName="test_table_for_column"> - <column name="id" type="INT"/> - </createTable> - </changeSet> - - <changeSet id="6" author="as"> - <addColumn tableName="test_table_for_column"> - <column name="varcharColumn" type="varchar(25)" value="INITIAL_VALUE"/> - <column name="intColumn" type="int" valueNumeric="5"/> - <column name="dateColumn" type="date" valueDate="2020-09-21"/> - </addColumn> - </changeSet> - - <!-- INDEX --> - <changeSet id="7" author="as"> - <createTable tableName="test_table_for_index"> - <column name="id" type="INT"/> - </createTable> - </changeSet> - - <changeSet id="8" author="as"> - <createIndex indexName="idx_first_name" tableName="test_table_for_index"> - <column name="id"/> - </createIndex> - <rollback> - <dropIndex tableName="test_table_for_index" - indexName="idx_first_name"/> - </rollback> - </changeSet> - - <!-- UNIQUE CONSTRAINT --> - <changeSet id="9" author="as"> - <addUniqueConstraint columnNames="id" - constraintName="test_unique_constraint" - deferrable="true" - initiallyDeferred="true" - tableName="test_table_reference" - validate="true"/> - <rollback> - <dropUniqueConstraint tableName="test_table_reference" - constraintName="test_unique_constraint"/> - </rollback> - </changeSet> - - <!-- SEQUENCE --> - <changeSet id="10" author="as"> - <createSequence incrementBy="1" - minValue="1" - sequenceName="test_sequence" - startValue="1"/> - <rollback> - <dropSequence sequenceName="test_sequence"/> - </rollback> - </changeSet> - - <!-- VIEW --> - <changeSet id="11" author="as"> - <createView viewName="test_view"> - select * from test_table_reference - </createView> - <rollback> - <dropView viewName="test_view"/> - </rollback> - </changeSet> -</databaseChangeLog> \ No newline at end of file diff --git a/src/main/resources/liquibase/harness/diff/changelogs/postgresql14_to_postgresql13.xml b/src/main/resources/liquibase/harness/diff/changelogs/postgresql14_to_postgresql13.xml index 63222f653..79aa71f66 100644 --- a/src/main/resources/liquibase/harness/diff/changelogs/postgresql14_to_postgresql13.xml +++ b/src/main/resources/liquibase/harness/diff/changelogs/postgresql14_to_postgresql13.xml @@ -1,10 +1,10 @@ <?xml version="1.0" encoding="UTF-8"?> <databaseChangeLog - xmlns="http://www.liquibase.org/xml/ns/dbchangelog" - xmlns:pro="http://www.liquibase.org/xml/ns/pro" - xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog - http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-latest.xsd"> + xmlns="http://www.liquibase.org/xml/ns/dbchangelog" + xmlns:pro="http://www.liquibase.org/xml/ns/pro" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog + http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-latest.xsd"> <!-- FOREIGN KEY CONSTRAINT --> @@ -111,4 +111,93 @@ constraintName="test_unique_constraint"/> </rollback> </changeSet> + + + <!-- FUNCTION --> + <changeSet id="13" author="as"> + <pro:createFunction + encoding="UTF-8" + functionName="test_function">CREATE OR REPLACE FUNCTION test_function() + RETURNS trigger + AS $$ + BEGIN + RAISE NOTICE 'Test function created'; + RETURN NEW; + END; + $$ + LANGUAGE plpgsql; + </pro:createFunction> + <rollback> + <pro:dropFunction functionName="test_function"/> + </rollback> + </changeSet> + + <!-- PACKAGE --> + <changeSet id="14" author="as"> + <pro:createPackage encoding="UTF-8" + packageName="Test package">CREATE OR REPLACE FUNCTION test_function1() + RETURNS trigger + AS $$ + BEGIN + RAISE NOTICE 'Test function created'; + RETURN NEW; + END; + $$ + LANGUAGE plpgsql;</pro:createPackage> + <rollback> + <pro:dropFunction functionName="test_function1"/> + </rollback> + </changeSet> + + <!-- PACKAGE BODY --> + <changeSet id="15" author="as"> + <pro:createPackageBody encoding="UTF-8" + packageBodyName="Test package">CREATE OR REPLACE FUNCTION test_function2() + RETURNS trigger + AS $$ + BEGIN + RAISE NOTICE 'Test function created'; + RETURN NEW; + END; + $$ + LANGUAGE plpgsql;</pro:createPackageBody> + <rollback> + <pro:dropFunction functionName="test_function2"/> + </rollback> + </changeSet> + + <!-- TRIGGER --> + <changeSet id="16" author="as"> + <pro:createTrigger disabled="false" + encoding="UTF-8" + scope="test" + tableName="posts" + triggerName="test_trigger">CREATE TRIGGER test_trigger + BEFORE INSERT ON posts + FOR EACH ROW EXECUTE PROCEDURE test_function(); + </pro:createTrigger> + <rollback> + <pro:dropTrigger triggerName="test_trigger" + tableName="posts"/> + </rollback> + </changeSet> + + <!-- PROCEDURE --> + <changeSet id="17" author="as"> + <comment>test procedure</comment> + <createProcedure + + dbms="postgresql" + encoding="UTF-8" + procedureName="test_procedure">CREATE OR REPLACE PROCEDURE test_procedure() + LANGUAGE 'plpgsql' + AS $$ + BEGIN + END; + $$ + </createProcedure> + <rollback> + <dropProcedure procedureName="test_procedure"/> + </rollback> + </changeSet> </databaseChangeLog> \ No newline at end of file diff --git a/src/main/resources/liquibase/harness/diff/changelogs/postgresql17_to_postgresql16.xml b/src/main/resources/liquibase/harness/diff/changelogs/postgresql17_to_postgresql16.xml new file mode 100644 index 000000000..5e8a424b9 --- /dev/null +++ b/src/main/resources/liquibase/harness/diff/changelogs/postgresql17_to_postgresql16.xml @@ -0,0 +1,203 @@ +<?xml version="1.0" encoding="UTF-8"?> +<databaseChangeLog + xmlns="http://www.liquibase.org/xml/ns/dbchangelog" + xmlns:pro="http://www.liquibase.org/xml/ns/pro" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog + http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-latest.xsd"> + + <!-- FOREIGN KEY CONSTRAINT --> + + <changeSet id="1" author="as"> + <createTable tableName="test_table_base"> + <column name="id" type="INT"> + <constraints nullable="false" primaryKey="true"/> + </column> + </createTable> + </changeSet> + + <changeSet id="2" author="as"> + <createTable tableName="test_table_reference"> + <column name="id" type="INT"> + <constraints nullable="false" primaryKey="true"/> + </column> + <column name="test_column" type="INT"> + <constraints nullable="false" unique="true"/> + </column> + </createTable> + </changeSet> + + <changeSet id="4" author="as"> + <addForeignKeyConstraint baseColumnNames="id" + baseTableName="test_table_base" + constraintName="test_fk" + onDelete="CASCADE" + onUpdate="RESTRICT" + referencedColumnNames="test_column" + referencedTableName="test_table_reference" + validate="true"/> + <rollback> + <dropForeignKeyConstraint baseTableName="test_table_base" + constraintName="test_fk"/> + </rollback> + </changeSet> + + <!-- COLUMN --> + <changeSet id="5" author="as" labels="tablesForReferenceDB"> + <createTable tableName="test_table_for_column"> + <column name="id" type="INT"/> + </createTable> + </changeSet> + + <changeSet id="6" author="as"> + <addColumn tableName="test_table_for_column"> + <column name="varcharColumn" type="varchar(25)" value="INITIAL_VALUE"/> + <column name="intColumn" type="int" valueNumeric="5"/> + <column name="dateColumn" type="date" valueDate="2020-09-21"/> + </addColumn> + </changeSet> + + <!-- INDEX --> + <changeSet id="7" author="as" labels="tableForCreateIndex"> + <createTable tableName="test_table_for_index"> + <column name="id" type="INT"/> + </createTable> + </changeSet> + + <changeSet id="8" author="as"> + <createIndex indexName="idx_first_name" tableName="test_table_for_index"> + <column name="id"/> + </createIndex> + <rollback> + <dropIndex tableName="test_table_for_index" + indexName="idx_first_name"/> + </rollback> + </changeSet> + + <!-- SEQUENCE --> + <changeSet id="9" author="as"> + <createSequence incrementBy="1" + minValue="1" + sequenceName="test_sequence" + startValue="1"/> + <rollback> + <dropSequence sequenceName="test_sequence"/> + </rollback> + </changeSet> + + <!-- VIEW --> + <changeSet id="10" author="as"> + <createView viewName="test_view"> + select id, first_name, last_name, email from authors + </createView> + </changeSet> + + <!-- UNIQUE CONSTRAINT --> + <changeSet id="11" author="as"> + <createTable tableName="test_table_for_uc"> + <column name="id" type="INT"/> + </createTable> + </changeSet> + + <changeSet id="12" author="as"> + <addUniqueConstraint columnNames="id" + constraintName="test_unique_constraint" + deferrable="true" + initiallyDeferred="true" + tableName="test_table_for_uc" + validate="true"/> + <rollback> + <dropUniqueConstraint tableName="test_table_for_uc" + constraintName="test_unique_constraint"/> + </rollback> + </changeSet> + + + <!-- FUNCTION --> + <changeSet id="13" author="as"> + <pro:createFunction + encoding="UTF-8" + functionName="test_function">CREATE OR REPLACE FUNCTION test_function() + RETURNS trigger + AS $$ + BEGIN + RAISE NOTICE 'Test function created'; + RETURN NEW; + END; + $$ + LANGUAGE plpgsql; + </pro:createFunction> + <rollback> + <pro:dropFunction functionName="test_function"/> + </rollback> + </changeSet> + + <!-- PACKAGE --> + <changeSet id="14" author="as"> + <pro:createPackage encoding="UTF-8" + packageName="Test package">CREATE OR REPLACE FUNCTION test_function1() + RETURNS trigger + AS $$ + BEGIN + RAISE NOTICE 'Test function created'; + RETURN NEW; + END; + $$ + LANGUAGE plpgsql;</pro:createPackage> + <rollback> + <pro:dropFunction functionName="test_function1"/> + </rollback> + </changeSet> + + <!-- PACKAGE BODY --> + <changeSet id="15" author="as"> + <pro:createPackageBody encoding="UTF-8" + packageBodyName="Test package">CREATE OR REPLACE FUNCTION test_function2() + RETURNS trigger + AS $$ + BEGIN + RAISE NOTICE 'Test function created'; + RETURN NEW; + END; + $$ + LANGUAGE plpgsql;</pro:createPackageBody> + <rollback> + <pro:dropFunction functionName="test_function2"/> + </rollback> + </changeSet> + + <!-- TRIGGER --> + <changeSet id="16" author="as"> + <pro:createTrigger disabled="false" + encoding="UTF-8" + scope="test" + tableName="posts" + triggerName="test_trigger">CREATE TRIGGER test_trigger + BEFORE INSERT ON posts + FOR EACH ROW EXECUTE PROCEDURE test_function(); + </pro:createTrigger> + <rollback> + <pro:dropTrigger triggerName="test_trigger" + tableName="posts"/> + </rollback> + </changeSet> + + <!-- PROCEDURE --> + <changeSet id="17" author="as"> + <comment>test procedure</comment> + <createProcedure + + dbms="postgresql" + encoding="UTF-8" + procedureName="test_procedure">CREATE OR REPLACE PROCEDURE test_procedure() + LANGUAGE 'plpgsql' + AS $$ + BEGIN + END; + $$ + </createProcedure> + <rollback> + <dropProcedure procedureName="test_procedure"/> + </rollback> + </changeSet> +</databaseChangeLog> \ No newline at end of file diff --git a/src/main/resources/liquibase/harness/diff/diffDatabases.yml b/src/main/resources/liquibase/harness/diff/diffDatabases.yml index 99d1ea4d5..720181398 100644 --- a/src/main/resources/liquibase/harness/diff/diffDatabases.yml +++ b/src/main/resources/liquibase/harness/diff/diffDatabases.yml @@ -4,26 +4,26 @@ # -> with such name or DB doesn't have version as such --- references: - # - targetDatabaseName: oracle - # targetDatabaseVersion: 18.3.0 - # referenceDatabaseName: oracle - # referenceDatabaseVersion: 18.4.0 - # - # - targetDatabaseName: oracle - # targetDatabaseVersion: 18.4.0 - # referenceDatabaseName: oracle - # referenceDatabaseVersion: 21.3.0 - # - # - targetDatabaseName: oracle - # targetDatabaseVersion: 21.3.0 - # referenceDatabaseName: oracle - # referenceDatabaseVersion: 18.4.0 - - targetDatabaseName: postgresql targetDatabaseVersion: 13 referenceDatabaseName: postgresql referenceDatabaseVersion: 14 + - targetDatabaseName: postgresql + targetDatabaseVersion: 16 + referenceDatabaseName: postgresql + referenceDatabaseVersion: 17 + + - targetDatabaseName: mariadb + targetDatabaseVersion: 10.4 + referenceDatabaseName: mariadb + referenceDatabaseVersion: 10.5 + + - targetDatabaseName: mariadb + targetDatabaseVersion: 10.6 + referenceDatabaseName: mariadb + referenceDatabaseVersion: 10.7 + - targetDatabaseName: mssql targetDatabaseVersion: 2017 referenceDatabaseName: mssql @@ -34,27 +34,13 @@ references: referenceDatabaseName: mssql referenceDatabaseVersion: 2022 - - targetDatabaseName: mssql - targetDatabaseVersion: 2022 - referenceDatabaseName: mssql - referenceDatabaseVersion: 2019 - - - targetDatabaseName: mariadb - targetDatabaseVersion: 10.6 - referenceDatabaseName: mariadb - referenceDatabaseVersion: 10.7 +#MySQL should be always latest + - targetDatabaseName: mysql + targetDatabaseVersion: 5.6 + referenceDatabaseName: mysql + referenceDatabaseVersion: 8 - - targetDatabaseName: mariadb - targetDatabaseVersion: 10.4 - referenceDatabaseName: mariadb - referenceDatabaseVersion: 10.5 -# -# - targetDatabaseName: mariadb -# targetDatabaseVersion: 10.2 -# referenceDatabaseName: mariadb -# referenceDatabaseVersion: 10.3 -# -# - targetDatabaseName: mysql -# targetDatabaseVersion: 5.7 -# referenceDatabaseName: mysql -# referenceDatabaseVersion: 8 \ No newline at end of file + - targetDatabaseName: mysql + targetDatabaseVersion: 5.7 + referenceDatabaseName: mysql + referenceDatabaseVersion: 8.4 \ No newline at end of file diff --git a/src/main/resources/liquibase/harness/diff/expectedDiff/mariadb10.5_to_mariadb10.4.txt b/src/main/resources/liquibase/harness/diff/expectedDiff/mariadb10.5_to_mariadb10.4.txt index 90a57e015..29892ae75 100644 --- a/src/main/resources/liquibase/harness/diff/expectedDiff/mariadb10.5_to_mariadb10.4.txt +++ b/src/main/resources/liquibase/harness/diff/expectedDiff/mariadb10.5_to_mariadb10.4.txt @@ -3,8 +3,8 @@ Comparison Database: lbuser @ jdbc:mariadb://localhost:33067/lbcat (Default Sche Compared Schemas: lbcat Product Name: EQUAL Product Version: - Reference: '10.5.20-MariaDB-1:10.5.20+maria~ubu2004' - Target: '10.4.29-MariaDB-1:10.4.29+maria~ubu2004' + Reference: '10.5.27-MariaDB-ubu2004' + Target: '10.4.34-MariaDB-1:10.4.34+maria~ubu2004' Missing Catalog(s): NONE Unexpected Catalog(s): NONE Changed Catalog(s): NONE @@ -38,7 +38,10 @@ Unexpected Foreign Key(s): test_fk(test_table_base[id] -> test_table_reference[test_column]) Changed Foreign Key(s): NONE Missing Function(s): NONE -Unexpected Function(s): NONE +Unexpected Function(s): + test_function + test_function1 + test_function2 Changed Function(s): NONE Missing Index(s): NONE Unexpected Index(s): @@ -58,7 +61,8 @@ Unexpected Sequence(s): test_sequence Changed Sequence(s): NONE Missing Stored Procedure(s): NONE -Unexpected Stored Procedure(s): NONE +Unexpected Stored Procedure(s): + test_procedure Changed Stored Procedure(s): NONE Missing Synonym(s): NONE Unexpected Synonym(s): NONE @@ -72,7 +76,8 @@ Unexpected Table(s): test_table_reference Changed Table(s): NONE Missing Trigger(s): NONE -Unexpected Trigger(s): NONE +Unexpected Trigger(s): + posts::test_trigger Changed Trigger(s): NONE Missing Unique Constraint(s): NONE Unexpected Unique Constraint(s): diff --git a/src/main/resources/liquibase/harness/diff/expectedDiff/mariadb10.7_to_mariadb10.6.txt b/src/main/resources/liquibase/harness/diff/expectedDiff/mariadb10.7_to_mariadb10.6.txt index f9bfb0256..02f57fded 100644 --- a/src/main/resources/liquibase/harness/diff/expectedDiff/mariadb10.7_to_mariadb10.6.txt +++ b/src/main/resources/liquibase/harness/diff/expectedDiff/mariadb10.7_to_mariadb10.6.txt @@ -4,7 +4,7 @@ Compared Schemas: lbcat Product Name: EQUAL Product Version: Reference: '10.7.8-MariaDB-1:10.7.8+maria~ubu2004' - Target: '10.6.13-MariaDB-1:10.6.13+maria~ubu2004' + Target: '10.6.20-MariaDB-ubu2004' Missing Catalog(s): NONE Unexpected Catalog(s): NONE Changed Catalog(s): NONE @@ -38,7 +38,10 @@ Unexpected Foreign Key(s): test_fk(test_table_base[id] -> test_table_reference[test_column]) Changed Foreign Key(s): NONE Missing Function(s): NONE -Unexpected Function(s): NONE +Unexpected Function(s): + test_function + test_function1 + test_function2 Changed Function(s): NONE Missing Index(s): NONE Unexpected Index(s): @@ -58,7 +61,8 @@ Unexpected Sequence(s): test_sequence Changed Sequence(s): NONE Missing Stored Procedure(s): NONE -Unexpected Stored Procedure(s): NONE +Unexpected Stored Procedure(s): + test_procedure Changed Stored Procedure(s): NONE Missing Synonym(s): NONE Unexpected Synonym(s): NONE @@ -72,7 +76,8 @@ Unexpected Table(s): test_table_reference Changed Table(s): NONE Missing Trigger(s): NONE -Unexpected Trigger(s): NONE +Unexpected Trigger(s): + posts::test_trigger Changed Trigger(s): NONE Missing Unique Constraint(s): NONE Unexpected Unique Constraint(s): diff --git a/src/main/resources/liquibase/harness/diff/expectedDiff/mssql2019_to_mssql2022.txt b/src/main/resources/liquibase/harness/diff/expectedDiff/mssql2019_to_mssql2022.txt deleted file mode 100644 index 255f52a8c..000000000 --- a/src/main/resources/liquibase/harness/diff/expectedDiff/mssql2019_to_mssql2022.txt +++ /dev/null @@ -1,81 +0,0 @@ -Reference Database: lbuser@jdbc:sqlserver://localhost:1434;connectRetryInterval=10;connectRetryCount=1;maxResultBuffer=-1;sendTemporalDataTypesAsStringForBulkCopy=true;delayLoadingLobs=true;useFmtOnly=false;msiTokenCacheTtl=3600;useBulkCopyForBatchInsert=false;cancelQueryTimeout=-1;sslProtocol=TLS;jaasConfigurationName=SQLJDBCDriver;statementPoolingCacheSize=0;serverPreparedStatementDiscardThreshold=10;enablePrepareOnFirstPreparedStatementCall=false;fips=false;socketTimeout=0;authentication=NotSpecified;authenticationScheme=nativeAuthentication;xopenStates=false;sendTimeAsDatetime=true;replication=false;trustStoreType=JKS;trustServerCertificate=true;TransparentNetworkIPResolution=true;iPAddressPreference=IPv4First;serverNameAsACE=false;sendStringParametersAsUnicode=true;selectMethod=direct;responseBuffering=adaptive;queryTimeout=-1;packetSize=8000;multiSubnetFailover=false;loginTimeout=30;lockTimeout=-1;lastUpdateCount=true;prepareMethod=prepexec;encrypt=True;disableStatementPooling=true;databaseName=lbcat;columnEncryptionSetting=Disabled;applicationName=MicrosoftJDBCDriverforSQLServer;applicationIntent=readwrite;(DefaultSchema:dbo) -Comparison Database: lbuser@jdbc:sqlserver://localhost:1435;connectRetryInterval=10;connectRetryCount=1;maxResultBuffer=-1;sendTemporalDataTypesAsStringForBulkCopy=true;delayLoadingLobs=true;useFmtOnly=false;msiTokenCacheTtl=3600;useBulkCopyForBatchInsert=false;cancelQueryTimeout=-1;sslProtocol=TLS;jaasConfigurationName=SQLJDBCDriver;statementPoolingCacheSize=0;serverPreparedStatementDiscardThreshold=10;enablePrepareOnFirstPreparedStatementCall=false;fips=false;socketTimeout=0;authentication=NotSpecified;authenticationScheme=nativeAuthentication;xopenStates=false;sendTimeAsDatetime=true;replication=false;trustStoreType=JKS;trustServerCertificate=true;TransparentNetworkIPResolution=true;iPAddressPreference=IPv4First;serverNameAsACE=false;sendStringParametersAsUnicode=true;selectMethod=direct;responseBuffering=adaptive;queryTimeout=-1;packetSize=8000;multiSubnetFailover=false;loginTimeout=30;lockTimeout=-1;lastUpdateCount=true;prepareMethod=prepexec;encrypt=True;disableStatementPooling=true;databaseName=lbcat;columnEncryptionSetting=Disabled;applicationName=MicrosoftJDBCDriverforSQLServer;applicationIntent=readwrite;(DefaultSchema:dbo) -Compared Schemas: dbo -Product Name: EQUAL -Product Version: - Reference: '15.00.4312' - Target: '16.00.4035' -Missing Catalog(s): NONE -Unexpected Catalog(s): NONE -Changed Catalog(s): NONE -Missing Check Constraint(s): NONE -Unexpected Check Constraint(s): NONE -Changed Check Constraint(s): NONE -Missing Column(s): NONE -Unexpected Column(s): - dbo.test_table_for_column.dateColumn - dbo.test_table_base.id - dbo.test_table_for_column.id - dbo.test_table_for_index.id - dbo.test_table_reference.id - dbo.test_view.id - dbo.test_table_for_column.intColumn - dbo.test_table_reference.test_column - dbo.test_view.test_column - dbo.test_table_for_column.varcharColumn -Changed Column(s): NONE -Missing Database Package(s): NONE -Unexpected Database Package(s): NONE -Changed Database Package(s): NONE -Missing Database Package Body(s): NONE -Unexpected Database Package Body(s): NONE -Changed Database Package Body(s): NONE -Missing Foreign Key(s): NONE -Unexpected Foreign Key(s): - test_fk(test_table_base[id]->test_table_reference[test_column]) -Changed Foreign Key(s): NONE -Missing Function(s): NONE -Unexpected Function(s): NONE -Changed Function(s): NONE -Missing Index(s): NONE -Unexpected Index(s): - PK_TEST_TABLE_REFERENCE UNIQUE ON dbo.test_table_reference(test_column) - idx_first_name ON dbo.test_table_for_index(id) - test_unique_constraint UNIQUE ON dbo.test_table_base(id) -Changed Index(s): NONE -Missing Primary Key(s): NONE -Unexpected Primary Key(s): - PK_TEST_TABLE_BASE on dbo.test_table_base(id) - PK_TEST_TABLE_REFERENCE on dbo.test_table_reference(test_column) -Changed Primary Key(s): NONE -Missing Schema(s): NONE -Unexpected Schema(s): NONE -Changed Schema(s): NONE -Missing Sequence(s): NONE -Unexpected Sequence(s): - test_sequence -Changed Sequence(s): NONE -Missing Stored Procedure(s): NONE -Unexpected Stored Procedure(s): NONE -Changed Stored Procedure(s): NONE -Missing Synonym(s): NONE -Unexpected Synonym(s): NONE -Changed Synonym(s): NONE -Missing Table(s): NONE -Unexpected Table(s): - test_table_base - test_table_for_column - test_table_for_index - test_table_reference -Changed Table(s): NONE -Missing Trigger(s): NONE -Unexpected Trigger(s): NONE -Changed Trigger(s): NONE -Missing Unique Constraint(s): NONE -Unexpected Unique Constraint(s): - test_unique_constraint on test_table_base(id) -Changed Unique Constraint(s): NONE -Missing View(s): NONE -Unexpected View(s): - test_view -Changed View(s): NONE \ No newline at end of file diff --git a/src/main/resources/liquibase/harness/diff/expectedDiff/mssql2022_to_mssql2017.txt b/src/main/resources/liquibase/harness/diff/expectedDiff/mssql2022_to_mssql2017.txt index e9011704f..cdbd61f4c 100644 --- a/src/main/resources/liquibase/harness/diff/expectedDiff/mssql2022_to_mssql2017.txt +++ b/src/main/resources/liquibase/harness/diff/expectedDiff/mssql2022_to_mssql2017.txt @@ -32,16 +32,19 @@ Unexpected Database Package Body(s): NONE Changed Database Package Body(s): NONE Missing Foreign Key(s): NONE Unexpected Foreign Key(s): - test_fk(test_table_base[id]->test_table_reference[test_column]) + test_fk(test_table_base[id] -> test_table_reference[test_column]) Changed Foreign Key(s): NONE Missing Function(s): NONE -Unexpected Function(s): NONE +Unexpected Function(s): + test_function + test_function1 + test_function2 Changed Function(s): NONE Missing Index(s): NONE Unexpected Index(s): - PK_TEST_TABLE_REFERENCE UNIQUE ON dbo.test_table_reference(test_column) + PK_TEST_TABLE_REFERENCE UNIQUE ON dbo.test_table_reference(test_column) idx_first_name ON dbo.test_table_for_index(id) - test_unique_constraint UNIQUE ON dbo.test_table_base(id) + test_unique_constraint UNIQUE ON dbo.test_table_base(id) Changed Index(s): NONE Missing Primary Key(s): NONE Unexpected Primary Key(s): @@ -56,7 +59,8 @@ Unexpected Sequence(s): test_sequence Changed Sequence(s): NONE Missing Stored Procedure(s): NONE -Unexpected Stored Procedure(s): NONE +Unexpected Stored Procedure(s): + test_procedure Changed Stored Procedure(s): NONE Missing Synonym(s): NONE Unexpected Synonym(s): NONE @@ -69,7 +73,8 @@ Unexpected Table(s): test_table_reference Changed Table(s): NONE Missing Trigger(s): NONE -Unexpected Trigger(s): NONE +Unexpected Trigger(s): + posts::test_trigger Changed Trigger(s): NONE Missing Unique Constraint(s): NONE Unexpected Unique Constraint(s): diff --git a/src/main/resources/liquibase/harness/diff/expectedDiff/mssql2022_to_mssql2019.txt b/src/main/resources/liquibase/harness/diff/expectedDiff/mssql2022_to_mssql2019.txt index 01d577a78..d96a560e0 100644 --- a/src/main/resources/liquibase/harness/diff/expectedDiff/mssql2022_to_mssql2019.txt +++ b/src/main/resources/liquibase/harness/diff/expectedDiff/mssql2022_to_mssql2019.txt @@ -1,10 +1,10 @@ -Reference Database: lbuser@jdbc:sqlserver://localhost:1435;connectRetryInterval=10;connectRetryCount=1;maxResultBuffer=-1;sendTemporalDataTypesAsStringForBulkCopy=true;delayLoadingLobs=true;useFmtOnly=false;msiTokenCacheTtl=3600;useBulkCopyForBatchInsert=false;cancelQueryTimeout=-1;sslProtocol=TLS;jaasConfigurationName=SQLJDBCDriver;statementPoolingCacheSize=0;serverPreparedStatementDiscardThreshold=10;enablePrepareOnFirstPreparedStatementCall=false;fips=false;socketTimeout=0;authentication=NotSpecified;authenticationScheme=nativeAuthentication;xopenStates=false;sendTimeAsDatetime=true;replication=false;trustStoreType=JKS;trustServerCertificate=true;TransparentNetworkIPResolution=true;iPAddressPreference=IPv4First;serverNameAsACE=false;sendStringParametersAsUnicode=true;selectMethod=direct;responseBuffering=adaptive;queryTimeout=-1;packetSize=8000;multiSubnetFailover=false;loginTimeout=30;lockTimeout=-1;lastUpdateCount=true;prepareMethod=prepexec;encrypt=True;disableStatementPooling=true;databaseName=lbcat;columnEncryptionSetting=Disabled;applicationName=MicrosoftJDBCDriverforSQLServer;applicationIntent=readwrite;(DefaultSchema:dbo) -Comparison Database: lbuser@jdbc:sqlserver://localhost:1434;connectRetryInterval=10;connectRetryCount=1;maxResultBuffer=-1;sendTemporalDataTypesAsStringForBulkCopy=true;delayLoadingLobs=true;useFmtOnly=false;msiTokenCacheTtl=3600;useBulkCopyForBatchInsert=false;cancelQueryTimeout=-1;sslProtocol=TLS;jaasConfigurationName=SQLJDBCDriver;statementPoolingCacheSize=0;serverPreparedStatementDiscardThreshold=10;enablePrepareOnFirstPreparedStatementCall=false;fips=false;socketTimeout=0;authentication=NotSpecified;authenticationScheme=nativeAuthentication;xopenStates=false;sendTimeAsDatetime=true;replication=false;trustStoreType=JKS;trustServerCertificate=true;TransparentNetworkIPResolution=true;iPAddressPreference=IPv4First;serverNameAsACE=false;sendStringParametersAsUnicode=true;selectMethod=direct;responseBuffering=adaptive;queryTimeout=-1;packetSize=8000;multiSubnetFailover=false;loginTimeout=30;lockTimeout=-1;lastUpdateCount=true;prepareMethod=prepexec;encrypt=True;disableStatementPooling=true;databaseName=lbcat;columnEncryptionSetting=Disabled;applicationName=MicrosoftJDBCDriverforSQLServer;applicationIntent=readwrite;(DefaultSchema:dbo) +Reference Database: lbuser @ jdbc:sqlserver://localhost:1434;connectRetryInterval=10;connectRetryCount=1;maxResultBuffer=-1;sendTemporalDataTypesAsStringForBulkCopy=true;delayLoadingLobs=true;useFmtOnly=false;cacheBulkCopyMetadata=false;useBulkCopyForBatchInsert=false;cancelQueryTimeout=-1;sslProtocol=TLS;calcBigDecimalPrecision=false;useDefaultJaasConfig=false;jaasConfigurationName=SQLJDBCDriver;statementPoolingCacheSize=0;serverPreparedStatementDiscardThreshold=10;enablePrepareOnFirstPreparedStatementCall=false;fips=false;socketTimeout=0;authentication=NotSpecified;authenticationScheme=nativeAuthentication;xopenStates=false;datetimeParameterType=datetime2;sendTimeAsDatetime=true;replication=false;trustStoreType=JKS;trustServerCertificate=true;TransparentNetworkIPResolution=true;iPAddressPreference=IPv4First;serverNameAsACE=false;sendStringParametersAsUnicode=true;selectMethod=direct;responseBuffering=adaptive;queryTimeout=-1;packetSize=8000;multiSubnetFailover=false;loginTimeout=30;lockTimeout=-1;lastUpdateCount=true;useDefaultGSSCredential=false;prepareMethod=prepexec;encrypt=True;disableStatementPooling=true;databaseName=lbcat;columnEncryptionSetting=Disabled;applicationName=Microsoft JDBC Driver for SQL Server;applicationIntent=readwrite; (Default Schema: dbo) +Comparison Database: lbuser @ jdbc:sqlserver://localhost:1435;connectRetryInterval=10;connectRetryCount=1;maxResultBuffer=-1;sendTemporalDataTypesAsStringForBulkCopy=true;delayLoadingLobs=true;useFmtOnly=false;cacheBulkCopyMetadata=false;useBulkCopyForBatchInsert=false;cancelQueryTimeout=-1;sslProtocol=TLS;calcBigDecimalPrecision=false;useDefaultJaasConfig=false;jaasConfigurationName=SQLJDBCDriver;statementPoolingCacheSize=0;serverPreparedStatementDiscardThreshold=10;enablePrepareOnFirstPreparedStatementCall=false;fips=false;socketTimeout=0;authentication=NotSpecified;authenticationScheme=nativeAuthentication;xopenStates=false;datetimeParameterType=datetime2;sendTimeAsDatetime=true;replication=false;trustStoreType=JKS;trustServerCertificate=true;TransparentNetworkIPResolution=true;iPAddressPreference=IPv4First;serverNameAsACE=false;sendStringParametersAsUnicode=true;selectMethod=direct;responseBuffering=adaptive;queryTimeout=-1;packetSize=8000;multiSubnetFailover=false;loginTimeout=30;lockTimeout=-1;lastUpdateCount=true;useDefaultGSSCredential=false;prepareMethod=prepexec;encrypt=True;disableStatementPooling=true;databaseName=lbcat;columnEncryptionSetting=Disabled;applicationName=Microsoft JDBC Driver for SQL Server;applicationIntent=readwrite; (Default Schema: dbo) Compared Schemas: dbo Product Name: EQUAL Product Version: - Reference: '16.00.4035' - Target: '15.00.4312' + Reference: '15.00.4375' + Target: '16.00.4125' Missing Catalog(s): NONE Unexpected Catalog(s): NONE Changed Catalog(s): NONE @@ -32,16 +32,19 @@ Unexpected Database Package Body(s): NONE Changed Database Package Body(s): NONE Missing Foreign Key(s): NONE Unexpected Foreign Key(s): - test_fk(test_table_base[id]->test_table_reference[test_column]) + test_fk(test_table_base[id] -> test_table_reference[test_column]) Changed Foreign Key(s): NONE Missing Function(s): NONE -Unexpected Function(s): NONE +Unexpected Function(s): + test_function + test_function1 + test_function2 Changed Function(s): NONE Missing Index(s): NONE Unexpected Index(s): - PK_TEST_TABLE_REFERENCE UNIQUE ON dbo.test_table_reference(test_column) + PK_TEST_TABLE_REFERENCE UNIQUE ON dbo.test_table_reference(test_column) idx_first_name ON dbo.test_table_for_index(id) - test_unique_constraint UNIQUE ON dbo.test_table_base(id) + test_unique_constraint UNIQUE ON dbo.test_table_base(id) Changed Index(s): NONE Missing Primary Key(s): NONE Unexpected Primary Key(s): @@ -56,7 +59,8 @@ Unexpected Sequence(s): test_sequence Changed Sequence(s): NONE Missing Stored Procedure(s): NONE -Unexpected Stored Procedure(s): NONE +Unexpected Stored Procedure(s): + test_procedure Changed Stored Procedure(s): NONE Missing Synonym(s): NONE Unexpected Synonym(s): NONE @@ -69,7 +73,8 @@ Unexpected Table(s): test_table_reference Changed Table(s): NONE Missing Trigger(s): NONE -Unexpected Trigger(s): NONE +Unexpected Trigger(s): + posts::test_trigger Changed Trigger(s): NONE Missing Unique Constraint(s): NONE Unexpected Unique Constraint(s): diff --git a/src/main/resources/liquibase/harness/diff/expectedDiff/mysql8_to_mysql5.7.txt b/src/main/resources/liquibase/harness/diff/expectedDiff/mysql8.4_to_mysql5.7.txt similarity index 89% rename from src/main/resources/liquibase/harness/diff/expectedDiff/mysql8_to_mysql5.7.txt rename to src/main/resources/liquibase/harness/diff/expectedDiff/mysql8.4_to_mysql5.7.txt index c43943844..c02f74458 100644 --- a/src/main/resources/liquibase/harness/diff/expectedDiff/mysql8_to_mysql5.7.txt +++ b/src/main/resources/liquibase/harness/diff/expectedDiff/mysql8.4_to_mysql5.7.txt @@ -1,10 +1,10 @@ -Reference Database: lbuser@172.18.0.1 @ jdbc:mysql://localhost:33061/lbcat (Default Schema: lbcat) -Comparison Database: lbuser@172.18.0.1 @ jdbc:mysql://localhost:33062/lbcat (Default Schema: lbcat) +Reference Database: lbuser@172.18.0.1 @ jdbc:mysql://localhost:33062/lbcat (Default Schema: lbcat) +Comparison Database: lbuser@172.18.0.1 @ jdbc:mysql://localhost:33065/lbcat (Default Schema: lbcat) Compared Schemas: lbcat Product Name: EQUAL Product Version: - Reference: '8.0.26' - Target: '5.7.42' + Reference: '5.7.44' + Target: '8.4.4' Missing Catalog(s): NONE Unexpected Catalog(s): NONE Changed Catalog(s): NONE @@ -38,7 +38,10 @@ Unexpected Foreign Key(s): test_fk(test_table_base[id] -> test_table_reference[test_column]) Changed Foreign Key(s): NONE Missing Function(s): NONE -Unexpected Function(s): NONE +Unexpected Function(s): + test_function + test_function1 + test_function2 Changed Function(s): NONE Missing Index(s): NONE Unexpected Index(s): @@ -53,11 +56,9 @@ Unexpected Primary Key(s): PRIMARY on lbcat.test_table_base(id) PRIMARY on lbcat.test_table_reference(id) Changed Primary Key(s): NONE -Missing Sequence(s): NONE -Unexpected Sequence(s): NONE -Changed Sequence(s): NONE Missing Stored Procedure(s): NONE -Unexpected Stored Procedure(s): NONE +Unexpected Stored Procedure(s): + test_procedure Changed Stored Procedure(s): NONE Missing Synonym(s): NONE Unexpected Synonym(s): NONE @@ -71,7 +72,8 @@ Unexpected Table(s): test_table_reference Changed Table(s): NONE Missing Trigger(s): NONE -Unexpected Trigger(s): NONE +Unexpected Trigger(s): + posts::test_trigger Changed Trigger(s): NONE Missing Unique Constraint(s): NONE Unexpected Unique Constraint(s): diff --git a/src/main/resources/liquibase/harness/diff/expectedDiff/mariadb10.3_to_mariadb10.2.txt b/src/main/resources/liquibase/harness/diff/expectedDiff/mysql8_to_mysql5.6.txt similarity index 83% rename from src/main/resources/liquibase/harness/diff/expectedDiff/mariadb10.3_to_mariadb10.2.txt rename to src/main/resources/liquibase/harness/diff/expectedDiff/mysql8_to_mysql5.6.txt index af6905f51..536eeaf3c 100644 --- a/src/main/resources/liquibase/harness/diff/expectedDiff/mariadb10.3_to_mariadb10.2.txt +++ b/src/main/resources/liquibase/harness/diff/expectedDiff/mysql8_to_mysql5.6.txt @@ -1,10 +1,10 @@ -Reference Database: lbuser @ jdbc:mariadb://localhost:33063/lbcat (Default Schema: lbcat) -Comparison Database: lbuser @ jdbc:mariadb://localhost:33068/lbcat (Default Schema: lbcat) +Reference Database: lbuser@172.18.0.1 @ jdbc:mysql://localhost:33064/lbcat (Default Schema: lbcat) +Comparison Database: lbuser@172.18.0.1 @ jdbc:mysql://localhost:33061/lbcat (Default Schema: lbcat) Compared Schemas: lbcat Product Name: EQUAL Product Version: - Reference: '10.3.39-MariaDB-1:10.3.39+maria~ubu2004' - Target: '10.2.44-MariaDB-1:10.2.44+maria~bionic' + Reference: '5.6.51' + Target: '8.0.26' Missing Catalog(s): NONE Unexpected Catalog(s): NONE Changed Catalog(s): NONE @@ -38,7 +38,10 @@ Unexpected Foreign Key(s): test_fk(test_table_base[id] -> test_table_reference[test_column]) Changed Foreign Key(s): NONE Missing Function(s): NONE -Unexpected Function(s): NONE +Unexpected Function(s): + test_function + test_function1 + test_function2 Changed Function(s): NONE Missing Index(s): NONE Unexpected Index(s): @@ -53,11 +56,9 @@ Unexpected Primary Key(s): PRIMARY on lbcat.test_table_base(id) PRIMARY on lbcat.test_table_reference(id) Changed Primary Key(s): NONE -Missing Sequence(s): NONE -Unexpected Sequence(s): NONE -Changed Sequence(s): NONE Missing Stored Procedure(s): NONE -Unexpected Stored Procedure(s): NONE +Unexpected Stored Procedure(s): + test_procedure Changed Stored Procedure(s): NONE Missing Synonym(s): NONE Unexpected Synonym(s): NONE @@ -71,7 +72,8 @@ Unexpected Table(s): test_table_reference Changed Table(s): NONE Missing Trigger(s): NONE -Unexpected Trigger(s): NONE +Unexpected Trigger(s): + posts::test_trigger Changed Trigger(s): NONE Missing Unique Constraint(s): NONE Unexpected Unique Constraint(s): diff --git a/src/main/resources/liquibase/harness/diff/expectedDiff/oracle18.4.0_to_oracle18.3.0.txt b/src/main/resources/liquibase/harness/diff/expectedDiff/oracle18.4.0_to_oracle18.3.0.txt deleted file mode 100644 index 3803069d4..000000000 --- a/src/main/resources/liquibase/harness/diff/expectedDiff/oracle18.4.0_to_oracle18.3.0.txt +++ /dev/null @@ -1,79 +0,0 @@ -Reference Database: C##LIQUIBASE@jdbc:oracle:thin:@localhost:1522/xe (DefaultSchema:C##LIQUIBASE) -Comparison Database: DATICAL_ADMIN@jdbc:oracle:thin:@localhost:1521/PDBORCL (DefaultSchema:DATICAL_ADMIN) -Compared Schemas: C##LIQUIBASE->DATICAL_ADMIN -Product Name: EQUAL -Product Version: - Reference: 'OracleDatabase18cExpressEditionRelease18.0.0.0.0-ProductionVersion18.4.0.0.0' - Target: 'OracleDatabase18cEnterpriseEditionRelease18.0.0.0.0-ProductionVersion18.3.0.0.0' -Missing Catalog(s): NONE -Unexpected Catalog(s): NONE -Changed Catalog(s): NONE -Missing Check Constraint(s): NONE -Unexpected Check Constraint(s): NONE -Changed Check Constraint(s): NONE -Missing Column(s): NONE -Unexpected Column(s): - DATICAL_ADMIN.TEST_TABLE_FOR_COLUMN.DATECOLUMN - DATICAL_ADMIN.TEST_TABLE_BASE.ID - DATICAL_ADMIN.TEST_TABLE_FOR_COLUMN.ID - DATICAL_ADMIN.TEST_TABLE_FOR_INDEX.ID - DATICAL_ADMIN.TEST_TABLE_REFERENCE.ID - DATICAL_ADMIN.TEST_VIEW.ID - DATICAL_ADMIN.TEST_TABLE_FOR_COLUMN.INTCOLUMN - DATICAL_ADMIN.TEST_TABLE_REFERENCE.TEST_COLUMN - DATICAL_ADMIN.TEST_VIEW.TEST_COLUMN - DATICAL_ADMIN.TEST_TABLE_FOR_COLUMN.VARCHARCOLUMN -Changed Column(s): NONE -Missing Database Package(s): NONE -Unexpected Database Package(s): NONE -Changed Database Package(s): NONE -Missing Database PackageBody(s): NONE -Unexpected Database PackageBody(s): NONE -Changed Database PackageBody(s): NONE -Missing Foreign Key(s): NONE -Unexpected Foreign Key(s): - TEST_FK(TEST_TABLE_BASE[ID]->TEST_TABLE_REFERENCE[TEST_COLUMN]) -Changed Foreign Key(s): NONE -Missing Function(s): NONE -Unexpected Function(s): NONE -Changed Function(s): NONE -Missing Index(s): NONE -Unexpected Index(s): - IDX_FIRST_NAME ON DATICAL_ADMIN.TEST_TABLE_FOR_INDEX(ID) - PK_TEST_TABLE_BASE UNIQUE ON DATICAL_ADMIN.TEST_TABLE_BASE(ID) - PK_TEST_TABLE_REFERENCE UNIQUE ON DATICAL_ADMIN.TEST_TABLE_REFERENCE(TEST_COLUMN) - TEST_UNIQUE_CONSTRAINT ON DATICAL_ADMIN.TEST_TABLE_REFERENCE(ID) -Changed Index(s): NONE -Missing Primary Key(s): NONE -Unexpected Primary Key(s): - PK_TEST_TABLE_BASE on DATICAL_ADMIN.TEST_TABLE_BASE(ID) - PK_TEST_TABLE_REFERENCE on DATICAL_ADMIN.TEST_TABLE_REFERENCE(TEST_COLUMN) -Changed Primary Key(s): NONE -Missing Sequence(s): NONE -Unexpected Sequence(s): - TEST_SEQUENCE -Changed Sequence(s): NONE -Missing Stored Procedure(s): NONE -Unexpected Stored Procedure(s): NONE -Changed Stored Procedure(s): NONE -Missing Synonym(s): NONE -Unexpected Synonym(s): NONE -Changed Synonym(s): NONE -Missing Table(s): NONE -Unexpected Table(s): - TEST_TABLE_BASE - TEST_TABLE_FOR_COLUMN - TEST_TABLE_FOR_INDEX - TEST_TABLE_REFERENCE -Changed Table(s): NONE -Missing Trigger(s): NONE -Unexpected Trigger(s): NONE -Changed Trigger(s): NONE -Missing Unique Constraint(s): NONE -Unexpected Unique Constraint(s): - TEST_UNIQUE_CONSTRAINT on TEST_TABLE_REFERENCE(ID) -Changed Unique Constraint(s): NONE -Missing View(s): NONE -Unexpected View(s): - TEST_VIEW -Changed View(s): NONE \ No newline at end of file diff --git a/src/main/resources/liquibase/harness/diff/expectedDiff/oracle18.4.0_to_oracle21.3.0.txt b/src/main/resources/liquibase/harness/diff/expectedDiff/oracle18.4.0_to_oracle21.3.0.txt deleted file mode 100644 index ed413568c..000000000 --- a/src/main/resources/liquibase/harness/diff/expectedDiff/oracle18.4.0_to_oracle21.3.0.txt +++ /dev/null @@ -1,79 +0,0 @@ -Reference Database: C##LIQUIBASE@jdbc:oracle:thin:@localhost:1522/xe (DefaultSchema:C##LIQUIBASE) -Comparison Database: C##LIQUIBASE@jdbc:oracle:thin:@localhost:1523/xe (DefaultSchema:C##LIQUIBASE) -Compared Schemas: C##LIQUIBASE -Product Name: EQUAL -Product Version: - Reference: 'OracleDatabase18cExpressEditionRelease18.0.0.0.0-ProductionVersion18.4.0.0.0' - Target: 'OracleDatabase21cExpressEditionRelease21.0.0.0.0-ProductionVersion21.3.0.0.0' -Missing Catalog(s): NONE -Unexpected Catalog(s): NONE -Changed Catalog(s): NONE -Missing Check Constraint(s): NONE -Unexpected Check Constraint(s): NONE -Changed Check Constraint(s): NONE -Missing Column(s): NONE -Unexpected Column(s): - C##LIQUIBASE.TEST_TABLE_FOR_COLUMN.DATECOLUMN - C##LIQUIBASE.TEST_TABLE_BASE.ID - C##LIQUIBASE.TEST_TABLE_FOR_COLUMN.ID - C##LIQUIBASE.TEST_TABLE_FOR_INDEX.ID - C##LIQUIBASE.TEST_TABLE_REFERENCE.ID - C##LIQUIBASE.TEST_VIEW.ID - C##LIQUIBASE.TEST_TABLE_FOR_COLUMN.INTCOLUMN - C##LIQUIBASE.TEST_TABLE_REFERENCE.TEST_COLUMN - C##LIQUIBASE.TEST_VIEW.TEST_COLUMN - C##LIQUIBASE.TEST_TABLE_FOR_COLUMN.VARCHARCOLUMN -Changed Column(s): NONE -Missing Database Package(s): NONE -Unexpected Database Package(s): NONE -Changed Database Package(s): NONE -Missing Database PackageBody(s): NONE -Unexpected Database PackageBody(s): NONE -Changed Database PackageBody(s): NONE -Missing Foreign Key(s): NONE -Unexpected Foreign Key(s): - TEST_FK(TEST_TABLE_BASE[ID]->TEST_TABLE_REFERENCE[TEST_COLUMN]) -Changed Foreign Key(s): NONE -Missing Function(s): NONE -Unexpected Function(s): NONE -Changed Function(s): NONE -Missing Index(s): NONE -Unexpected Index(s): - IDX_FIRST_NAME ON C##LIQUIBASE.TEST_TABLE_FOR_INDEX(ID) - PK_TEST_TABLE_BASE UNIQUE ON C##LIQUIBASE.TEST_TABLE_BASE(ID) - PK_TEST_TABLE_REFERENCE UNIQUE ON C##LIQUIBASE.TEST_TABLE_REFERENCE(TEST_COLUMN) - TEST_UNIQUE_CONSTRAINT ON C##LIQUIBASE.TEST_TABLE_REFERENCE(ID) -Changed Index(s): NONE -Missing Primary Key(s): NONE -Unexpected Primary Key(s): - PK_TEST_TABLE_BASE on C##LIQUIBASE.TEST_TABLE_BASE(ID) - PK_TEST_TABLE_REFERENCE on C##LIQUIBASE.TEST_TABLE_REFERENCE(TEST_COLUMN) -Changed Primary Key(s): NONE -Missing Sequence(s): NONE -Unexpected Sequence(s): - TEST_SEQUENCE -Changed Sequence(s): NONE -Missing Stored Procedure(s): NONE -Unexpected Stored Procedure(s): NONE -Changed Stored Procedure(s): NONE -Missing Synonym(s): NONE -Unexpected Synonym(s): NONE -Changed Synonym(s): NONE -Missing Table(s): NONE -Unexpected Table(s): - TEST_TABLE_BASE - TEST_TABLE_FOR_COLUMN - TEST_TABLE_FOR_INDEX - TEST_TABLE_REFERENCE -Changed Table(s): NONE -Missing Trigger(s): NONE -Unexpected Trigger(s): NONE -Changed Trigger(s): NONE -Missing Unique Constraint(s): NONE -Unexpected Unique Constraint(s): - TEST_UNIQUE_CONSTRAINT on TEST_TABLE_REFERENCE(ID) -Changed Unique Constraint(s): NONE -Missing View(s): NONE -Unexpected View(s): - TEST_VIEW -Changed View(s): NONE \ No newline at end of file diff --git a/src/main/resources/liquibase/harness/diff/expectedDiff/oracle21.3.0_to_oracle18.4.0.txt b/src/main/resources/liquibase/harness/diff/expectedDiff/oracle21.3.0_to_oracle18.4.0.txt deleted file mode 100644 index 3d3460399..000000000 --- a/src/main/resources/liquibase/harness/diff/expectedDiff/oracle21.3.0_to_oracle18.4.0.txt +++ /dev/null @@ -1,79 +0,0 @@ -Reference Database: C##LIQUIBASE@jdbc:oracle:thin:@localhost:1523/xe (DefaultSchema:C##LIQUIBASE) -Comparison Database: C##LIQUIBASE@jdbc:oracle:thin:@localhost:1522/xe (DefaultSchema:C##LIQUIBASE) -Compared Schemas: C##LIQUIBASE -Product Name: EQUAL -Product Version: - Reference: 'OracleDatabase21cExpressEditionRelease21.0.0.0.0-ProductionVersion21.3.0.0.0' - Target: 'OracleDatabase18cExpressEditionRelease18.0.0.0.0-ProductionVersion18.4.0.0.0' -Missing Catalog(s): NONE -Unexpected Catalog(s): NONE -Changed Catalog(s): NONE -Missing Check Constraint(s): NONE -Unexpected Check Constraint(s): NONE -Changed Check Constraint(s): NONE -Missing Column(s): NONE -Unexpected Column(s): - C##LIQUIBASE.TEST_TABLE_FOR_COLUMN.DATECOLUMN - C##LIQUIBASE.TEST_TABLE_BASE.ID - C##LIQUIBASE.TEST_TABLE_FOR_COLUMN.ID - C##LIQUIBASE.TEST_TABLE_FOR_INDEX.ID - C##LIQUIBASE.TEST_TABLE_REFERENCE.ID - C##LIQUIBASE.TEST_VIEW.ID - C##LIQUIBASE.TEST_TABLE_FOR_COLUMN.INTCOLUMN - C##LIQUIBASE.TEST_TABLE_REFERENCE.TEST_COLUMN - C##LIQUIBASE.TEST_VIEW.TEST_COLUMN - C##LIQUIBASE.TEST_TABLE_FOR_COLUMN.VARCHARCOLUMN -Changed Column(s): NONE -Missing Database Package(s): NONE -Unexpected Database Package(s): NONE -Changed Database Package(s): NONE -Missing Database PackageBody(s): NONE -Unexpected Database PackageBody(s): NONE -Changed Database PackageBody(s): NONE -Missing Foreign Key(s): NONE -Unexpected Foreign Key(s): - TEST_FK(TEST_TABLE_BASE[ID]->TEST_TABLE_REFERENCE[TEST_COLUMN]) -Changed Foreign Key(s): NONE -Missing Function(s): NONE -Unexpected Function(s): NONE -Changed Function(s): NONE -Missing Index(s): NONE -Unexpected Index(s): - IDX_FIRST_NAME ON C##LIQUIBASE.TEST_TABLE_FOR_INDEX(ID) - PK_TEST_TABLE_BASE UNIQUE ON C##LIQUIBASE.TEST_TABLE_BASE(ID) - PK_TEST_TABLE_REFERENCE UNIQUE ON C##LIQUIBASE.TEST_TABLE_REFERENCE(TEST_COLUMN) - TEST_UNIQUE_CONSTRAINT ON C##LIQUIBASE.TEST_TABLE_REFERENCE(ID) -Changed Index(s): NONE -Missing Primary Key(s): NONE -Unexpected Primary Key(s): - PK_TEST_TABLE_BASE on C##LIQUIBASE.TEST_TABLE_BASE(ID) - PK_TEST_TABLE_REFERENCE on C##LIQUIBASE.TEST_TABLE_REFERENCE(TEST_COLUMN) -Changed Primary Key(s): NONE -Missing Sequence(s): NONE -Unexpected Sequence(s): - TEST_SEQUENCE -Changed Sequence(s): NONE -Missing Stored Procedure(s): NONE -Unexpected Stored Procedure(s): NONE -Changed Stored Procedure(s): NONE -Missing Synonym(s): NONE -Unexpected Synonym(s): NONE -Changed Synonym(s): NONE -Missing Table(s): NONE -Unexpected Table(s): - TEST_TABLE_BASE - TEST_TABLE_FOR_COLUMN - TEST_TABLE_FOR_INDEX - TEST_TABLE_REFERENCE -Changed Table(s): NONE -Missing Trigger(s): NONE -Unexpected Trigger(s): NONE -Changed Trigger(s): NONE -Missing Unique Constraint(s): NONE -Unexpected Unique Constraint(s): - TEST_UNIQUE_CONSTRAINT on TEST_TABLE_REFERENCE(ID) -Changed Unique Constraint(s): NONE -Missing View(s): NONE -Unexpected View(s): - TEST_VIEW -Changed View(s): NONE \ No newline at end of file diff --git a/src/main/resources/liquibase/harness/diff/expectedDiff/postgresql14_to_postgresql13.txt b/src/main/resources/liquibase/harness/diff/expectedDiff/postgresql14_to_postgresql13.txt index 4ac2c2ec8..ece97e3e8 100644 --- a/src/main/resources/liquibase/harness/diff/expectedDiff/postgresql14_to_postgresql13.txt +++ b/src/main/resources/liquibase/harness/diff/expectedDiff/postgresql14_to_postgresql13.txt @@ -3,8 +3,8 @@ Comparison Database: lbuser @ jdbc:postgresql://localhost:5437/lbcat (Default Sc Compared Schemas: public Product Name: EQUAL Product Version: - Reference: '14.8 (Debian 14.8-1.pgdg110+1)' - Target: '13.11 (Debian 13.11-1.pgdg110+1)' + Reference: '14.15 (Debian 14.15-1.pgdg120+1)' + Target: '13.18 (Debian 13.18-1.pgdg120+1)' Missing Catalog(s): NONE Unexpected Catalog(s): NONE Changed Catalog(s): NONE @@ -38,7 +38,10 @@ Unexpected Foreign Key(s): test_fk(test_table_base[id] -> test_table_reference[test_column]) Changed Foreign Key(s): NONE Missing Function(s): NONE -Unexpected Function(s): NONE +Unexpected Function(s): + test_function() + test_function1() + test_function2() Changed Function(s): NONE Missing Index(s): NONE Unexpected Index(s): @@ -61,7 +64,8 @@ Unexpected Sequence(s): test_sequence Changed Sequence(s): NONE Missing Stored Procedure(s): NONE -Unexpected Stored Procedure(s): NONE +Unexpected Stored Procedure(s): + test_procedure Changed Stored Procedure(s): NONE Missing Synonym(s): NONE Unexpected Synonym(s): NONE @@ -75,7 +79,8 @@ Unexpected Table(s): test_table_reference Changed Table(s): NONE Missing Trigger(s): NONE -Unexpected Trigger(s): NONE +Unexpected Trigger(s): + posts::test_trigger Changed Trigger(s): NONE Missing Unique Constraint(s): NONE Unexpected Unique Constraint(s): diff --git a/src/main/resources/liquibase/harness/diff/expectedDiff/postgresql17_to_postgresql16.txt b/src/main/resources/liquibase/harness/diff/expectedDiff/postgresql17_to_postgresql16.txt new file mode 100644 index 000000000..1db542aeb --- /dev/null +++ b/src/main/resources/liquibase/harness/diff/expectedDiff/postgresql17_to_postgresql16.txt @@ -0,0 +1,93 @@ +Reference Database: lbuser @ jdbc:postgresql://localhost:5438/lbcat (Default Schema: public) +Comparison Database: lbuser @ jdbc:postgresql://localhost:5437/lbcat (Default Schema: public) +Compared Schemas: public +Product Name: EQUAL +Product Version: + Reference: '17.2 (Debian 17.2-1.pgdg120+1)' + Target: '16.6 (Debian 16.6-1.pgdg120+1)' +Missing Catalog(s): NONE +Unexpected Catalog(s): NONE +Changed Catalog(s): NONE +Missing Check Constraint(s): NONE +Unexpected Check Constraint(s): NONE +Changed Check Constraint(s): NONE +Missing Column(s): NONE +Unexpected Column(s): + public.test_table_for_column.dateColumn + public.test_view.email + public.test_view.first_name + public.test_table_base.id + public.test_table_for_column.id + public.test_table_for_index.id + public.test_table_for_uc.id + public.test_table_reference.id + public.test_view.id + public.test_table_for_column.intColumn + public.test_view.last_name + public.test_table_reference.test_column + public.test_table_for_column.varcharColumn +Changed Column(s): NONE +Missing Database Package(s): NONE +Unexpected Database Package(s): NONE +Changed Database Package(s): NONE +Missing Database Package Body(s): NONE +Unexpected Database Package Body(s): NONE +Changed Database Package Body(s): NONE +Missing Foreign Key(s): NONE +Unexpected Foreign Key(s): + test_fk(test_table_base[id] -> test_table_reference[test_column]) +Changed Foreign Key(s): NONE +Missing Function(s): NONE +Unexpected Function(s): + test_function() + test_function1() + test_function2() +Changed Function(s): NONE +Missing Index(s): NONE +Unexpected Index(s): + idx_first_name ON public.test_table_for_index(id) + test_table_base_pkey UNIQUE ON public.test_table_base(id) + test_table_reference_pkey UNIQUE ON public.test_table_reference(id) + test_table_reference_test_column_key UNIQUE ON public.test_table_reference(test_column) + test_unique_constraint UNIQUE ON public.test_table_for_uc(id) +Changed Index(s): NONE +Missing Primary Key(s): NONE +Unexpected Primary Key(s): + test_table_base_pkey on public.test_table_base(id) + test_table_reference_pkey on public.test_table_reference(id) +Changed Primary Key(s): NONE +Missing Schema(s): NONE +Unexpected Schema(s): NONE +Changed Schema(s): NONE +Missing Sequence(s): NONE +Unexpected Sequence(s): + test_sequence +Changed Sequence(s): NONE +Missing Stored Procedure(s): NONE +Unexpected Stored Procedure(s): + test_procedure +Changed Stored Procedure(s): NONE +Missing Synonym(s): NONE +Unexpected Synonym(s): NONE +Changed Synonym(s): NONE +Missing Table(s): NONE +Unexpected Table(s): + test_table_base + test_table_for_column + test_table_for_index + test_table_for_uc + test_table_reference +Changed Table(s): NONE +Missing Trigger(s): NONE +Unexpected Trigger(s): + posts::test_trigger +Changed Trigger(s): NONE +Missing Unique Constraint(s): NONE +Unexpected Unique Constraint(s): + test_table_reference_test_column_key on test_table_reference(test_column) + test_unique_constraint on test_table_for_uc(id) +Changed Unique Constraint(s): NONE +Missing View(s): NONE +Unexpected View(s): + test_view +Changed View(s): NONE \ No newline at end of file diff --git a/src/test/groovy/liquibase/harness/DiffChangelogTest.groovy b/src/test/groovy/liquibase/harness/DiffChangelogTest.groovy new file mode 100644 index 000000000..20b018f19 --- /dev/null +++ b/src/test/groovy/liquibase/harness/DiffChangelogTest.groovy @@ -0,0 +1,6 @@ +package liquibase.harness + +import liquibase.harness.diff.DiffChangelogTests; + +class DiffChangelogTest extends DiffChangelogTests { +} diff --git a/src/test/groovy/liquibase/harness/DiffTest.groovy b/src/test/groovy/liquibase/harness/DiffTest.groovy index 70944d015..df0dfc05c 100644 --- a/src/test/groovy/liquibase/harness/DiffTest.groovy +++ b/src/test/groovy/liquibase/harness/DiffTest.groovy @@ -1,6 +1,6 @@ package liquibase.harness; -import liquibase.harness.diff.DiffCommandTest; +import liquibase.harness.diff.DiffTests; -class DiffTest extends DiffCommandTest { +class DiffTest extends DiffTests { } diff --git a/src/test/resources/automation-runner.sh b/src/test/resources/automation-runner.sh index 93c91b2dd..cad2920ed 100755 --- a/src/test/resources/automation-runner.sh +++ b/src/test/resources/automation-runner.sh @@ -131,6 +131,9 @@ case $db in "diff") test_command mvn -ntp -Dtest=DiffTest test ;; + "diffChangelog") + test_command mvn -ntp -Dtest=DiffChangelogTest test + ;; "hsqldb-2.4") test_command mvn -ntp -Dtest=$tc -DdbName=hsqldb -DdbVersion=2.4 test ;; diff --git a/src/test/resources/docker/create-infra.sh b/src/test/resources/docker/create-infra.sh index 1795ba25e..bfad8cd91 100755 --- a/src/test/resources/docker/create-infra.sh +++ b/src/test/resources/docker/create-infra.sh @@ -20,7 +20,13 @@ case $db in ;; "diff") - docker compose up -d postgres-17 postgres-16 postgres-15 postgres-14 postgres-13 postgres-12 mysql-5.7 mysql-8 mysql-8.4 mariadb-10.2 mariadb-10.3 mariadb-10.4 mariadb-10.5 mariadb-10.6 mariadb-10.7 mariadb-11.4 mssql-2017 mssql-2019 mssql-2022 + docker compose up -d postgres-17 postgres-16 postgres-14 postgres-13 mysql-5.7 mysql-5.6 mysql-8 mysql-8.4 mariadb-10.4 mariadb-10.5 mariadb-10.6 mariadb-10.7 mssql-2017 mssql-2019 mssql-2022 + sleep 40 + docker ps -a + ;; + + "diffChangelog") + docker compose up -d postgres-17 postgres-16 postgres-14 postgres-13 mysql-5.7 mysql-5.6 mysql-8 mysql-8.4 mariadb-10.4 mariadb-10.5 mariadb-10.6 mariadb-10.7 mssql-2017 mssql-2019 mssql-2022 sleep 40 docker ps -a ;;