perhaps I’m looking for a wrong thing here, then I’d like some help in general dev process =)
So what happens is
1) I add a new changeset to my dev changelog, say:
2) I run liquibase update and get my db updated
3) then I run my integration tests to find out that hibernate expects LONGTEXT, not a TEXT, so my last changeset was wrong
this changeset is not committed anywhere so i’d like to simply get rid of it. But i can’t rollback it, cuz modifyDataType does not support rollback => i can’t rerun with a correct data type.
How do people solve problem like that during normal day-to-day development?
There are a few options, depending on the case some may seem to make more sense to you:
- You could create a node inside the changeSet. This will allow you to do a rollback which simply removes the entry from the databaeschangelog table. Your type will still be TEXT, but if you change your changeSet to LONGTEXT and do an update again, it will be modified.
- you could simply delete the corresponding row from the databasechangelog table, change the changeset and re-run the changelog.
- You could add an additional changeSet that changes the datatype to LONGTEXT and delete the old changeSet. Your database will run the new one and all future executions will never know the TEXT changeset existed.