This is what I've mentioned on our call. Let me prove this could work and please prove me wrong or point weak spots.
- We can agree on how many steps we want to be able to rollback to (capistrano supports it, now on webstore is 2. I think increasing this too much makes no sense. Personally I think 2 is perfect - can't imagine that we release 1.19, after two weekes we release 1.20, after another 2 weeks 1.21 and at this point PO decides we want to rollback to version from a month ago).
- don't think that database migrations is about just database migrations - it's also about writing code in a way it can handle this migrations.
- future actions can be easily managed with something similar to roadsigns. For migrations, in case you need column to be removed in some unspecified future you can leave file
CHECK_THIS_BEFORE_MAKING_NEW_MIGRATION
, with entry2015-01-12 prepared for column foo removal. Please remove after at least 5 releases
(see first assumpti