Two version of an app (for subset of users), same database


I am thinking of having two versions of the same app live. A specific
set of users would be running the latest one with all the new features,
while everyone else would be on a latest stable version.

I was thinking that one mongrel instance (?) would be running an app
from a different branch. The database would have to be shared with the
“trunk” version of the app. The simplest scenario is that the new
version only has some additional tables / columns and thus the old one
doesn’t notice anything… but sometimes this probably wouldn’t be the
case. I don’t know what to do in this case. I read a very interesting
article that I recommend to everyone: It’s Evolutionary Database Design
by Marting Fowler at Evolutionary Database Design
I think this article has some ideas that might come handy in trying to
achieve this (from a database standpoint).

So… this is the bird-eye view of how it should work… I’m sure a lot of
people thought / are using something like this, but don’t know how
exactly to get started and what is the right approach.

I would be really grateful for ANY comments about this (of course I
would also like to automate this fully - with capistrano)!

Thank you!