I posted this over at
http://www.sitepoint.com/forums/web-page-design-1/changing-tablecloth-while-dinner-progress-751011.html"" target="_blank" rel="nofollow">Sitepoint as a general discussion, but quickly realized that I should have posted it here in the MODx forum instead, as the issues I’m trying to address are quite specific.
I’m wondering how people handle making major revisions to the functionality of a site, while that site’s content is constantly being updated.
For instance, suppose I have an ecommerce site with a blog, and I want to make some major changes to its look and functionality. I clone the site to my local development server and start work. As well as modifying CSS, this involves changing templates, revising certain parts of the site’s permanent content (such as the chunks for the topbanner and footer and the resources for the privacy policy and about us page), adding some new snippets, and changing system-wide settings.
Now fast-forward two weeks. My revisions are complete, and I’m ready to roll them out to the production site. So I do a database dump and... wait, I can’t overwrite the whole database. While my new version was in the oven, 500 orders have been placed in the store, 10 new entries, with comments, have appeared on the blog, 2 snippets have undergone security updates, several pages have been revised, and system settings changes have been made.
Now, how am I going to take my local database, which reflects all my wonderful changes, and "merge" it with the remote one?
The only way I can come up with is to roll out my revisions slowly, manually, using either copy-paste or the Provisioner extra - or else to do a partial database dump and attempt to overwrite only the tables that need to be changed. Either method is error-prone, in addition to being a royal pain.
So, how do you handle a situation like this? I’d love to hear your ideas, stories, and best practices.