Issue related to tagging

Hi,


I tag the database for every release. So in the changelog once I have run all the changesets, the last changeset has the tag


However what I have observed is that this causes an update statement to be issued which updates the last run changeset with the tag number and then puts the entry for the tag in the databasechangelog table. This is a little strange behaviour. Either it should tag all changesets in that changelog with the tag version or none of them tagging only the changeset where the <tag is defined for example


      – This file contains multiple change sets

     

           

     


It causes a little bit of confusion when I look at the databasechangelog table where a changeset from the schema.xml is also tagged but others are left out. Is there something which I am not doing correctly?


Regards

Piyush

Like you said, the current implementation of tagging just marks the last changeset with the tag. We can’t overwrite the tag value in other rows because we don’t want to erase previous tags. Ideally we’d have a separate table to manage tags so we can better track what is in each tag and that is something I’m looking at with 3.2, but for now we went with the simpler implementation that is designed around the existing table and supporting the rollback command without worrying about listing changeSets that were part of a tag.


The row that gets inserted after the tag is more a side effect of the liquibase execution process. The contents of the changeSet is ran (in this case, tag the database) before the changeSet is marked as executed.


Nathan

Hi Nathan, 


Thanks. This explains the current process 


Regards

Piyush