2011/12/1 Ian Walls <ian.walls@bywatersolutions.com>:
About your first suggestion (the one you didn't want to get buried in the discussion of part 2):
<snip>
DB revs need to maintain a sequence, as sometimes order of application is important. But if two completely orthogonal things are applied out of sequence, it really doesn't matter. Oh, wait, this is just like in Git!
That would lead me back to using a Hash to keep track of the current default DB state, but as it's not just structure, but also data, that gets more complex than possibility really allows.
DB version really becomes meaningless for master/dev use once we allow non-linear and selective application of DB related changes. The only time everyone is likely to be at a common DB version will be at major/maintenance release times. And even then, if someone has opted out of certain DB changes, they may never be "in sync" with everyone else. This leads me to think that the use of hashes is the best option. As Ian mentions, this is common to version control systems which is really what we are talking about here: a DB version control system. /me wonders if we are not re-inventing the wheel here... there's only so many ways to make it round, you know. Kind Regards, Chris