Hey Guys,
I am new to liquibase and trying to use the tag database feature but having trouble. Basically i am starting midway through a project and it seems to be working ok. I have generated the changelog and done the changelogSyncSQL to identify the queries that will be run on the boxes to setup. However at this point i would like to tag the db with the release version of the app at it starting state in this example which is 0.5.3. So where I am at now is that i have tried to add the tagDatabase to the existing changesets and rerun the syncSQL. However it fails in this case with :
-
Migration Failed: cvc-complex-type.2.4.a: Invalid content was found starting with element 'createSequence'. One of '{"http://www.liquibase.org/xml/ns/dbchangelog/1.9":modifySql}' is expected.
For this changeset:
So as an alternative i just tried creting a new changeset for the tag with :
In this case it does not tag the database but just creates a new changes set called tagging database :
-
INSERT INTO DATABASECHANGELOG (DATEEXECUTED, AUTHOR, LIQUIBASE, DESCRIPTION, COMMENTS, MD5SUM, ID, FILENAME) VALUES (SYSDATE, 'me (generated)', '1.9.5', 'Tag Database', '', 'b818a9dd1aa95b53f7e433a4445ad0', '1291354233716-24', './grails-app/migrations/changelog.xml');
And does not actually apply a tag to the database. So at this stage I am a bit stumped as to the problem. Am i misunderstanding the use of the tag in this case? Do i have to run the tag apply directly to the database including prod “i would not be allowed to do this by the dba’s”? I really have no idea and the doco just says <tagDatabase=“blah”/> which is not particularly helpful .
Any help would be appreciated because I would really like to get this setup properly the first time and not have to hack it later. It might also be a good business case for us to use it if i get a good process setup.
Cheers Dave