I am struggling to establish a clean workflow with Wordpress. I have three different environments in my workflow which are localhost, staging and live.

The general idea :
I want to work on my localhost, then test it on the staging env. to finally push it on live safely.

My current situation :
For my localhost I am using the famous WAMPserver, then I have a Git solution (Bitbucket) for version controlling and I have been using DeployHQ to deploy it to the staging environment.

The staging has been created really easily with the plugin WP staging which created a copy of the Live files inside a subdirectory and copy of tables inside the same database but with different prefix.

So to migrate from my localhost to staging, I just need to push with Git and my folder wp-content is deployed straight into the staging directory, prefect so.

The problem :
The problem comes when I need to push from staging to live..
With the plugin WP Staging there is no way to do that. I tried the PushLive plugin. It destroys everything.. a real mess.
So I can't find any good solution to just push files and database into Live.

The only solution I have in mind is to simply copy/paste through FTP my wp-content folder.
Then for the database is getting complex.. I should use the WP sync DB in my localhost to pull my staging database first, then change the prefix from tables and meta_keys. For finally push it on Live.

I can't find better solution for now, but it's look like a long and dangerous process for me. So if you have any suggestion I wish to read it.

I just hope to not kill my live website again.. Thank you in advance for your help.

I've noticed that WPEngine has a built-in, git-integrated workflow in support of WordPress staging environments. In short, perhaps your answer involves your choice of hosting. I understand that "Site Ground" is another hosting provider that can offer something similar.

BTW, take a look at the article "No More Cowboy Coding". There might be further useful tips for you in there.

Your Answer

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Not the answer you're looking for? Browse other questions tagged or ask your own question.