As with most other software it's safer to try new plugins, configuration options or template changes in a separate testing environment, see e.g. WordPress local development environment.
Most questions and answers I've seen about this is the simpler case: doing the initial development locally and then deploy everything to the live site. That is easy. However, what if I need to test some change in the middle of site's life cycle? I guess the steps should be:
- Replicate a current state of the site to the testing environment
- Test the changes in the testing environment
- When done, merge the changes back to live
I know how to do 1+2 but am not sure about 3. This steps breaks down to 2 parts:
Again, 1 is easy so for example template updates are easily migrated from test to live. But 2 is tricky. Copying test db to live is not always possible (there might have been content changes in the meantime etc.), comparing schemas is also not a trivial task, theoretically there could be a plugin that would help with test <-> live synchronization but I'm not sure if it exists.
How do you people deal with this? Any tips & tricks or procedures?