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 http://www.martinfowler.com/articles/evodb.html
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)!