This is a topic which is a major headache for us and I'd like to see how other folks tackle it.
We manage some pretty big sites which run on ExpressionEngine. Our clients sometimes ask for changes and enhancements which take a long time to develop, and so we naturally do that development work on a separate copy of their live website. However, when we come to bring those changes back to the production site it's a nightmare, for the following reasons
- Software version changes (i.e. modules added/replace, EE upgrades performed, module upgrades performed)
- EE 'Structural' changes (channels/fields/templates/snippets which have been added/removed/changed)
- Content changes
1 isn't too painful, 2 is a pain but we've developed some tooling to help us with that (and I believe Christopher Imrie's Site Manager can help with that too). It's number 3 which is a major problem. It's not just the fact that new content has been added, it's the inter-dependencies between all the various tables (and add-on tables) which make it almost impossible to handle.
How are you handling this?