Grails comes with a database schema manager that is perfect for development and testing. It's fast, transparent, and sometimes magical. Being magic, though, it gets confused on occasion such as when you do a roll back to an older application version. In development and testing this is easily solved by dropping the DB. This is not sufficient for production.
It's time for me to explore production database management. It seems that there are a few options:
It's time for me to explore production database management. It seems that there are a few options:
The most mature player. It's been proven on many other projects that I've done. It has two big downsides, though. First off, it's another hand-edited XML configuration nightmare, which is precisely why I had stopped developing Java web applications for years (yes, I'm talking about you Spring). Second, although it does have a grails plug in, the plug in does not actually do much except script some commands. Integration is hence very loose.
I read that this behaves a lot like the rails which has an OK database migration technique, although I always had challenges merging migrations from many developers and hated the 1000 migrations that built up after a few months of development.
I did not test this tool very much since at the time of this blog post, it seems to be an abandoned project.
This tool is still a baby, but it looks incredibly promising. It claims to offer the features of Liquibase with the convience of the built in grails migration tool. It's also being actively developed.While I'd love to start contributing to Autobase, I'm afraid that I don't have time to dive into that project at the moment. In the end I decided to start with Liquibase and keep a close eye on Autobase. Perhaps in a couple of months I'll be able to ditch Liquibase and be free of XML files once again.
