|
| 1 | +-- Make sure the liquibase changelog table exists |
| 2 | +prompt "Run liquibase validate" |
| 3 | +liquibase validate -database-changelog-table-name &1._changelog -changelog-file sqlcl-liquibase-databasechangelog-filename-directory-seperator/changelog.xml |
| 4 | + |
| 5 | +-- Call to see if functionality works |
| 6 | +prompt "Run liquibase update" |
| 7 | +liquibase update -database-changelog-table-name &1._changelog -changelog-file sqlcl-liquibase-databasechangelog-filename-directory-seperator/changelog.xml |
| 8 | + |
| 9 | +-- See if any changesets were run |
| 10 | +prompt "Check changesets ran" |
| 11 | +declare |
| 12 | + c_table_name constant varchar2(255 char) := '&1._changelog'; |
| 13 | + l_count number; |
| 14 | +begin |
| 15 | + execute immediate 'select count(1) from ' || c_table_name |
| 16 | + into l_count; |
| 17 | + |
| 18 | + if l_count = 0 then |
| 19 | + raise_application_error(-20001, 'Liquibase update did not run'); |
| 20 | + end if; |
| 21 | +end; |
| 22 | +/ |
| 23 | + |
| 24 | +-- Check filename directory separator directions |
| 25 | +prompt "Check changesets ran" |
| 26 | +declare |
| 27 | + c_root constant varchar2(255 char) := 'sqlcl-liquibase-databasechangelog-filename-directory-seperator'; |
| 28 | + c_table_name constant varchar2(255 char) := '&1._changelog'; |
| 29 | + l_id varchar2(255 char); |
| 30 | + l_filename varchar2(255 char); |
| 31 | +begin |
| 32 | + l_id := 'opensouce_liquibase_change'; |
| 33 | + execute immediate 'select filename from ' || c_table_name || ' where id = :1' |
| 34 | + into l_filename |
| 35 | + using in l_id; |
| 36 | + |
| 37 | + if l_filename != c_root || '/a/b/c/child.sql' then |
| 38 | + raise_application_error(-20002, 'Open source liquibase change did not match expected filename ("' || l_filename || '"")'); |
| 39 | + end if; |
| 40 | + |
| 41 | + l_id := 'sqlcl_liquibase_runoraclescript_change'; |
| 42 | + execute immediate 'select filename from ' || c_table_name || ' where id = :1' |
| 43 | + into l_filename |
| 44 | + using in l_id; |
| 45 | + |
| 46 | + if l_filename != c_root || '/a/b/c/child.xml' then |
| 47 | + raise_application_error(-20003, 'runOracleScript change did not match expected filename ("' || l_filename || '"")'); |
| 48 | + end if; |
| 49 | + |
| 50 | + l_id := 'sqlcl_liquibase_runapexscript_change'; |
| 51 | + execute immediate 'select filename from ' || c_table_name || ' where id = :1' |
| 52 | + into l_filename |
| 53 | + using in l_id; |
| 54 | + |
| 55 | + if l_filename != c_root || '/a/b/c/child.xml' then |
| 56 | + raise_application_error(-20004, 'runApexScript change did not match expected filename ("' || l_filename || '"")'); |
| 57 | + end if; |
| 58 | +end; |
| 59 | +/ |
0 commit comments