duplicate identifiers found


Since upgrading from LB 1.9.5 to 2.0 RC7 my clean install procedure will not run anymore. It reports duplicate identifiers. My problem is not that I have duplicate identifiers, but that it no longer seems allowed to have them.

The relevant part of my installation procedure changelog looks like this :


We used to just rely on the databasechangelog entry to make sure that the changelog was executed only once.
So to summarize, we intentionally have duplicate identifiers and in version 1.9.5 this was not a problem but now in 2.0 RC7 it is.
I would love to have a setting that would allow me to overrule the check for duplicate identifiers, or maybe even to have the check removed completely.
Any thoughts?


(sorry for the slow reply)

I’m surprised that 1.9 allowed you to have duplicate IDs.  Must have been a bug… :slight_smile:

I’d be concerned about adding a flag to allow duplicates because I’m not sure what else will happen with liquibase when it runs into duplicates.  I would have thought 1.9 would have had problems with duplicates, and I’m sure 2.0 will. 

I’m not sure what you mean by intentionally having duplicate ids to ensure they are only ran once.  Can you explain what is happening and expected a little better?


Hi Nathan,

The reason we had duplicate identifiers was that we had table install scripts that also inserted project specific table metadata into one of our tables.
As a result, that table had to be created before the others to not make the insert fail. To fix this we simply included that meta data table install changelog as a specific ‘include’ in our install routine before the includeAll element would call all the other table install changelog files.
Now the metadata table would be installed first and not installed again with the ‘includeAll’ call because the changelog was already registered as ran in the databasechangelog table.
We changed our install routine to not run into the duplicate identifier constraint anymore.