Generating a change log with multiple columns foreign keys from an existing Oracle database fails


I am trying to generate a changelog from our existing database. Couple of the tables have foreign keys that contain multiple columns. It seems this does not work, as the generated addForeignKeyConstraints does not contain comma separated baseColumnNames nor referencedColumnNames. Only the first column of the foreign key is contained.

I use Liquibase 3.0.2. Is that supposed to work? Does it work for someone? Anything I could have done wrong?

liquibase --defaultCatalogName= --classpath=… --driver=oracle.jdbc.OracleDriver --changeLogFile=… --url jdbc:oracle:thin:@…:1521:develop --username=USER_2 --password=…  generateChangeLog

(… = Removed for privacy reasons)



Same problem here with version 3.0.2.


I think I found a problem with how foreign keys are compared. The fix will be in 3.0.3, hopefully out soon.


Thanks Nathan. Looking forward to 3.0.3.


Any news about the release date of 3.0.3?

Working to finish it up soon. It’s been a couple busy weeks of traveling, but hopefully by the beginning of next week at the latest.


Thumbs up!


It seems this is not yet fixed in 3.0.4. Multi column foreign keys are not generated correctly when running generateChangelog against Firebird and Oracle database. Shouldn’t that be fixed?

I am going to create one and add it as a comment to the Jira entry.

It should be fixed, I’ll have to take a look. If you have an easy test case you can send that would be great.


I created to track the issue in 3.0.4