How do you manage development workflow without overwriting production data

Hi Everyone
Is there any recommendations on how to manage development workflow with Wordpress.

I use GIT for to push and pull files from local to test/production environments - which works great for theme updates. But how do you handle updates with php files that affect the Database.

For example, lets say I develop a website locally and the make it live. A client then wants further changes but they have made several posts and changes to content. Is the only way to make changes to Wordpress safely to turn the production site off for an hour, download to local ,make changes then re-upload?

Any recommendations?