We're updating the issue view to help you get more done. 

Liquibase 3.6.2 fails to run some change sets with Oracle 11XE (works fine on Liquibase 3.5.5)

Description

On Liquibase 3.5.5 everything works fine.
After the update to Liquibase 3.6.2 there are the following errors when running against Oracle 11XE.

  • PostgreSQL is working fine

  • MySQL / MariaDB is working fine

  • MSSQL has other issues (see )

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 Starting Liquibase at Fri, 18 Jan 2019 08:39:36 GMT (version 3.6.2 built at 2018-07-03 11:28:09) Unexpected error running Liquibase: ORA-00984: column not allowed here [Failed SQL: CREATE TABLE NMC.JOBDESCRIPTION (JOBID VARCHAR2(40) NOT NULL, EXECUTIONTYPE INTEGER NOT NULL, EXECUTABLENAME VARCHAR2(512) NOT NULL, ACTIVATED INTEGER DEFAULT 1 NOT NULL, NEXTACTIVATIONTIME TIMESTAMP DEFAULT UNSUPPORTED:1990-01-01T00:00:00 NOT NULL, LASTACTIVATIONTIME TIMESTAMP NOT NULL, TIMESERVICEID INTEGER NOT NULL, TIMEZONE VARCHAR2(50) NOT NULL, DSTMODE VARCHAR2(50) NOT NULL, JOBBEGIN TIMESTAMP NOT NULL, JOBINTERVALL INTEGER, JOBEND TIMESTAMP NOT NULL, JOBCYCLETIME INTEGER, JOBCYCLETYPE INTEGER, JOBCYCLEACTIVE INTEGER, NEXTJOBCYCLEBEGIN TIMESTAMP NOT NULL, JOBINTERVALLBEGIN INTEGER NOT NULL, JOBINTERVALLEND INTEGER NOT NULL, JOBINTERVALLACTIVE INTEGER, JOBINTERVALLCYCLETIME INTEGER NOT NULL, JOBFILTERBEGIN INTEGER, JOBFILTEREND INTEGER, JOBFILTERACTIVE INTEGER, JOBFILTERNEGATION INTEGER, JOBDATEINTERVALL VARCHAR2(256) NOT NULL, JOBWDAYINTERVALL VARCHAR2(256) NOT NULL, JOBWEEKINTERVALL VARCHAR2(256) NOT NULL, JOBMONINTERVALL VARCHAR2(256) NOT NULL, JOBDAYMODE VARCHAR2(256) NOT NULL, JOBEXECCOUNTER INTEGER DEFAULT 0 NOT NULL, JOBEVENTID INTEGER NOT NULL, JOBDESCRIPTIONSIGN VARCHAR2(40), JOBDESCRIPTIONID INTEGER NOT NULL, JOBFILTERWEEKDAYACTIVE INTEGER, JOBFILTERWEEKDAYNEGATION INTEGER)] liquibase.exception.MigrationFailedException: Migration failed for change set ./db.init_schema.xml::1457342360801-20::envinet: Reason: liquibase.exception.DatabaseException: ORA-00984: column not allowed here [Failed SQL: CREATE TABLE NMC.JOBDESCRIPTION (JOBID VARCHAR2(40) NOT NULL, EXECUTIONTYPE INTEGER NOT NULL, EXECUTABLENAME VARCHAR2(512) NOT NULL, ACTIVATED INTEGER DEFAULT 1 NOT NULL, NEXTACTIVATIONTIME TIMESTAMP DEFAULT UNSUPPORTED:1990-01-01T00:00:00 NOT NULL, LASTACTIVATIONTIME TIMESTAMP NOT NULL, TIMESERVICEID INTEGER NOT NULL, TIMEZONE VARCHAR2(50) NOT NULL, DSTMODE VARCHAR2(50) NOT NULL, JOBBEGIN TIMESTAMP NOT NULL, JOBINTERVALL INTEGER, JOBEND TIMESTAMP NOT NULL, JOBCYCLETIME INTEGER, JOBCYCLETYPE INTEGER, JOBCYCLEACTIVE INTEGER, NEXTJOBCYCLEBEGIN TIMESTAMP NOT NULL, JOBINTERVALLBEGIN INTEGER NOT NULL, JOBINTERVALLEND INTEGER NOT NULL, JOBINTERVALLACTIVE INTEGER, JOBINTERVALLCYCLETIME INTEGER NOT NULL, JOBFILTERBEGIN INTEGER, JOBFILTEREND INTEGER, JOBFILTERACTIVE INTEGER, JOBFILTERNEGATION INTEGER, JOBDATEINTERVALL VARCHAR2(256) NOT NULL, JOBWDAYINTERVALL VARCHAR2(256) NOT NULL, JOBWEEKINTERVALL VARCHAR2(256) NOT NULL, JOBMONINTERVALL VARCHAR2(256) NOT NULL, JOBDAYMODE VARCHAR2(256) NOT NULL, JOBEXECCOUNTER INTEGER DEFAULT 0 NOT NULL, JOBEVENTID INTEGER NOT NULL, JOBDESCRIPTIONSIGN VARCHAR2(40), JOBDESCRIPTIONID INTEGER NOT NULL, JOBFILTERWEEKDAYACTIVE INTEGER, JOBFILTERWEEKDAYNEGATION INTEGER)] at liquibase.changelog.ChangeSet.execute(ChangeSet.java:637) at liquibase.changelog.visitor.UpdateVisitor.visit(UpdateVisitor.java:53) at liquibase.changelog.ChangeLogIterator.run(ChangeLogIterator.java:78) at liquibase.Liquibase.update(Liquibase.java:202) at liquibase.Liquibase.update(Liquibase.java:179) at liquibase.integration.commandline.Main.doMigration(Main.java:1205) at liquibase.integration.commandline.Main.run(Main.java:191) at liquibase.integration.commandline.Main.main(Main.java:129) Caused by: liquibase.exception.DatabaseException: ORA-00984: column not allowed here [Failed SQL: CREATE TABLE NMC.JOBDESCRIPTION (JOBID VARCHAR2(40) NOT NULL, EXECUTIONTYPE INTEGER NOT NULL, EXECUTABLENAME VARCHAR2(512) NOT NULL, ACTIVATED INTEGER DEFAULT 1 NOT NULL, NEXTACTIVATIONTIME TIMESTAMP DEFAULT UNSUPPORTED:1990-01-01T00:00:00 NOT NULL, LASTACTIVATIONTIME TIMESTAMP NOT NULL, TIMESERVICEID INTEGER NOT NULL, TIMEZONE VARCHAR2(50) NOT NULL, DSTMODE VARCHAR2(50) NOT NULL, JOBBEGIN TIMESTAMP NOT NULL, JOBINTERVALL INTEGER, JOBEND TIMESTAMP NOT NULL, JOBCYCLETIME INTEGER, JOBCYCLETYPE INTEGER, JOBCYCLEACTIVE INTEGER, NEXTJOBCYCLEBEGIN TIMESTAMP NOT NULL, JOBINTERVALLBEGIN INTEGER NOT NULL, JOBINTERVALLEND INTEGER NOT NULL, JOBINTERVALLACTIVE INTEGER, JOBINTERVALLCYCLETIME INTEGER NOT NULL, JOBFILTERBEGIN INTEGER, JOBFILTEREND INTEGER, JOBFILTERACTIVE INTEGER, JOBFILTERNEGATION INTEGER, JOBDATEINTERVALL VARCHAR2(256) NOT NULL, JOBWDAYINTERVALL VARCHAR2(256) NOT NULL, JOBWEEKINTERVALL VARCHAR2(256) NOT NULL, JOBMONINTERVALL VARCHAR2(256) NOT NULL, JOBDAYMODE VARCHAR2(256) NOT NULL, JOBEXECCOUNTER INTEGER DEFAULT 0 NOT NULL, JOBEVENTID INTEGER NOT NULL, JOBDESCRIPTIONSIGN VARCHAR2(40), JOBDESCRIPTIONID INTEGER NOT NULL, JOBFILTERWEEKDAYACTIVE INTEGER, JOBFILTERWEEKDAYNEGATION INTEGER)] at liquibase.executor.jvm.JdbcExecutor$ExecuteStatementCallback.doInStatement(JdbcExecutor.java:356) at liquibase.executor.jvm.JdbcExecutor.execute(JdbcExecutor.java:57) at liquibase.executor.jvm.JdbcExecutor.execute(JdbcExecutor.java:125) at liquibase.database.AbstractJdbcDatabase.execute(AbstractJdbcDatabase.java:1229) at liquibase.database.AbstractJdbcDatabase.executeStatements(AbstractJdbcDatabase.java:1211) at liquibase.changelog.ChangeSet.execute(ChangeSet.java:600) ... 7 common frames omitted Caused by: java.sql.SQLSyntaxErrorException: ORA-00984: column not allowed here at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:450) at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:399) at oracle.jdbc.driver.T4C8Oall.processError(T4C8Oall.java:1017) at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:655) at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:249) at oracle.jdbc.driver.T4C8Oall.doOALL(T4C8Oall.java:566) at oracle.jdbc.driver.T4CStatement.doOall8(T4CStatement.java:202) at oracle.jdbc.driver.T4CStatement.doOall8(T4CStatement.java:45) at oracle.jdbc.driver.T4CStatement.executeForRows(T4CStatement.java:933) at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1075) at oracle.jdbc.driver.OracleStatement.executeInternal(OracleStatement.java:1718) at oracle.jdbc.driver.OracleStatement.execute(OracleStatement.java:1678) at oracle.jdbc.driver.OracleStatementWrapper.execute(OracleStatementWrapper.java:332) at liquibase.executor.jvm.JdbcExecutor$ExecuteStatementCallback.doInStatement(JdbcExecutor.java:352) ... 12 common frames omitted For more information, please use the --logLevel flag script returned exit code 255

The change sets look like this:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 <changeSet author="envinet" id="1457342360801-20"> <createTable tableName="JOBDESCRIPTION"> <column name="JOBID" type="varchar(40)"> <constraints nullable="false"/> </column> <column name="EXECUTIONTYPE" type="int"> <constraints nullable="false"/> </column> <column name="EXECUTABLENAME" type="varchar(512)"> <constraints nullable="false"/> </column> <column defaultValueNumeric="1" name="ACTIVATED" type="int"> <constraints nullable="false"/> </column> <column defaultValueDate="1990-01-01 00:00:00.0" name="NEXTACTIVATIONTIME" type="timestamp"> <constraints nullable="false"/> </column> <column name="LASTACTIVATIONTIME" type="timestamp"> <constraints nullable="false"/> </column> <column name="TIMESERVICEID" type="int"> <constraints nullable="false"/> </column> <column name="TIMEZONE" type="varchar(50)"> <constraints nullable="false"/> </column> <column name="DSTMODE" type="varchar(50)"> <constraints nullable="false"/> </column> <column name="JOBBEGIN" type="timestamp"> <constraints nullable="false"/> </column> <column name="JOBINTERVALL" type="int"/> <column name="JOBEND" type="timestamp"> <constraints nullable="false"/> </column> <column name="JOBCYCLETIME" type="int"/> <column name="JOBCYCLETYPE" type="int"/> <column name="JOBCYCLEACTIVE" type="int"/> <column name="NEXTJOBCYCLEBEGIN" type="timestamp"> <constraints nullable="false"/> </column> <column name="JOBINTERVALLBEGIN" type="int"> <constraints nullable="false"/> </column> <column name="JOBINTERVALLEND" type="int"> <constraints nullable="false"/> </column> <column name="JOBINTERVALLACTIVE" type="int"/> <column name="JOBINTERVALLCYCLETIME" type="int"> <constraints nullable="false"/> </column> <column name="JOBFILTERBEGIN" type="int"/> <column name="JOBFILTEREND" type="int"/> <column name="JOBFILTERACTIVE" type="int"/> <column name="JOBFILTERNEGATION" type="int"/> <column name="JOBDATEINTERVALL" type="varchar(256)"> <constraints nullable="false"/> </column> <column name="JOBWDAYINTERVALL" type="varchar(256)"> <constraints nullable="false"/> </column> <column name="JOBWEEKINTERVALL" type="varchar(256)"> <constraints nullable="false"/> </column> <column name="JOBMONINTERVALL" type="varchar(256)"> <constraints nullable="false"/> </column> <column name="JOBDAYMODE" type="varchar(256)"> <constraints nullable="false"/> </column> <column defaultValueNumeric="0" name="JOBEXECCOUNTER" type="int"> <constraints nullable="false"/> </column> <column name="JOBEVENTID" type="int"> <constraints nullable="false"/> </column> <column name="JOBDESCRIPTIONSIGN" type="varchar(40)"/> <column name="JOBDESCRIPTIONID" type="int"> <constraints nullable="false"/> </column> <column name="JOBFILTERWEEKDAYACTIVE" type="int"/> <column name="JOBFILTERWEEKDAYNEGATION" type="int"/> </createTable> </changeSet>

Environment

  • Linux 64-Bit, OpenJDK 8, Oracle Database 11g Express Edition Release 11.2.0.2.0 - 64bit Production (Docker Image)

Status

Assignee

Unassigned

Reporter

Simon Narkprasert

Labels

None

Affects versions

3.6.2

Priority

Major