Categories
Development

Database as a service

I’m still out on if the database as a service is a good or bad idea. I am leaning towards the latter though.

One of the scary things most developers do today is refactoring the database. I actually think a lot of good refactorings just isn’t done because it becomes a large and daunting task when it comes to databases. Exposing your schema directly to other consumers just makes this worse. An abstraction would help some, at the cost of maintaining the abstraction. I do feel that this abstraction could be functions and/or views, but for most Java developers this is much harder to maintain than a Java abstracion.

Check out this blog for some arguments against database as a service.

Categories
Development

Database migrations

I was originally looking for a way to organize our db-scripts so we could do a full drop and recreate before running tests, or deploying a new version. One of the main disadvantages to this is that test data will get lost. By separating the scripts you can still maintain upgrade scripts for when you are going live with a new version.

But since we have many interested parties, asking them to drop all their carefully crafted test data is not an option. That’s when I stumbled across DBDeploy. It is beeing developed by a bunch of Thoughtworks guys, and it supports upgrade/downgrade in small increments. It seems alright, though it’s doesn’t seem to be under active development. Last svn activity was in october last year, but I guess some simple things actually get done. 😉 I’ll report back when we get some experience with it.