Vikas Vij P
Vikas Vij P

Reputation: 11

Customize Liquibase Control tables (DATABASECHANGELOG & DATABAEECHANGELOGLOCK)

Following the inputs from the below forum, system properties were specified and customized names for DATABASECHANGELOG & DATABASECHANGELOGLOCK tables were used & setup (on liquibase update execution). http://forum.liquibase.org/topic/configurable-databasechangelog-table-name

Liquibase version-3.5.1, Database-Oracle 12c, OS-Redhat Linux

But, on subsequent attempts to execute future liquibase updates (against same database schema), the execution fails as its trying to recreate the customized DATABASECHANGELOG table again - failing with Object Name already in use. This does not happen when trying to use the standard liquibase control tables names (i.e. DATABASECHANGELOG & DATABASECHANGELOGLOCK)

Is there an option to skip recreation of customized liquibase control tables OR another fix for this this issue?

Upvotes: 1

Views: 1271

Answers (2)

Vikas Vij P
Vikas Vij P

Reputation: 11

The issue was due to the case-sensitivity of the custom table names when executing against oracle databases. Weird error, but its resolved when specifying the value in upper case (via system properties/command line)

Upvotes: 0

Amit
Amit

Reputation: 163

Why setting these as system properties?

You can invoke liquibase like the following (or these arguments defined in the properties file):

liquibase <regular arguments > --liquibaseSchemaName=YOUR_SCHEMA \
     --databaseChangeLogTableName=YOUR_DBCHANGELOG \
     --databaseChangeLogLockTableName=YOUR_DBCHANGELOGLOCK ....

It works fine for us (liquibase 3.5.1, Oracle 12c).

Thanks

Upvotes: 4

Related Questions