Title: Pull Push Sync WordPress
Last modified: August 22, 2016

---

# Pull Push Sync WordPress

 *  [doubledworks](https://wordpress.org/support/users/doubledworks/)
 * (@doubledworks)
 * [11 years, 2 months ago](https://wordpress.org/support/topic/pull-push-sync-wordpress/)
 * I have been searching for a way to sync production sites with a development sites
   by pulling and pushing data from one site to the other while not overwriting 
   required changes on the site receiving data.
 * For example if I have a live site accepting user signups, posts, comments, images
   etc and a development site, I can pull data down and make both the same, then
   make changes to the dev site but when I go to push the changes back up to the
   productiion site I would end up overwrite any addtional changes made on the live
   site while working on the dev site.
 * Generally I use Duplicator to move sites from place to place.
    I also recently
   found WP Migrate DB Pro however as with the duplicator this also overwrites data
   on the receiving site.
 * While both of these plugins are awesome, they don’t do what I for one would really
   like to find and use. Any info on this subject in the forum etc appears to be
   well outdated.
 * If there is a way to accomplish what I have described above please fill me in
   on what I am missing and direct me to the solution.
 * It doesn’t have to be a plugin, however it would be rather awesome if it was.
 * How does wordpress.org and wordpress.com manage this sort of thing?
 * Surely there is a way without manually going through massive databases to compare
   data etc.
 * Thanks

Viewing 5 replies - 1 through 5 (of 5 total)

 *  [catacaustic](https://wordpress.org/support/users/catacaustic/)
 * (@catacaustic)
 * [11 years, 2 months ago](https://wordpress.org/support/topic/pull-push-sync-wordpress/#post-5919521)
 * I haven’t seen anything that cna do this either, so I don’t think that there’s
   much that can do that at this stage.
 * The biggest problem is the settings in the database. Just how do you decide what
   values on the target server are meant to be saved, and what are meant to be discarded?
   That’s why it’s so hard to do this the right way.
 * Things like SVN, GIT, etc that work great with the files, but they don’t work
   with databases. I have seen some products that claim to work with SQL and databases,
   but none that I’ve tried really seem to work the right way.
 *  Thread Starter [doubledworks](https://wordpress.org/support/users/doubledworks/)
 * (@doubledworks)
 * [11 years, 2 months ago](https://wordpress.org/support/topic/pull-push-sync-wordpress/#post-5919531)
 * Yes from what I can see the database is the main issue.
 * It seems crazy if there is no solution. Surely this has to be one to manage any
   live site if you test build on a dev/staging site.
 * Is this specifically a wordpress issue or are other cms sites like drupal, jamola
   and the like in the same boat?
 * I cant see how sites like wordpress.com and wordpress.org could possibly survive
   without some sort of solution.
 * I cant get my head around there being no solution. Surely there has to be something?
 * Anyone have a solution? Anyone working on a solution?
 *  [catacaustic](https://wordpress.org/support/users/catacaustic/)
 * (@catacaustic)
 * [11 years, 2 months ago](https://wordpress.org/support/topic/pull-push-sync-wordpress/#post-5919632)
 * Well, to be honest, no, it’s not as big a deal as you would believe.
 * The reason for this is that data in the database should be separate. Files, sure
   they can be synchronised, and even data table structure, but data should stay
   separate because it’s just too easy to break something in production if you go
   messing around with things.
 * As an example, think of this scenario…
 * You add a new post in your live site, and you add a new different post on your
   development site. Now, sync them. BUT… which post is the right one? They both
   have the same ID number, and they are both valid on their own site, but what 
   should the system do? Should it dump both as they don’t match? Dump one, and 
   if so which one? Dump none and add both to the live site, remembering that you
   might also want to delete a post one day so you can’t do that as well? Throw 
   an error?
 * There’s way too many things that can go wrong with these sorts of things. It’s
   almost impossible to tell a computer the right rules for ever situation, and 
   that’s why it hasn’t been done before anywhere.
 *  Thread Starter [doubledworks](https://wordpress.org/support/users/doubledworks/)
 * (@doubledworks)
 * [11 years, 2 months ago](https://wordpress.org/support/topic/pull-push-sync-wordpress/#post-5919657)
 * I know what you’re saying. I realize the files are or at least can be a separate
   issue. I completely get that there is an ID issue with merging. What about with
   this sync example though?
 * I am likely missing some aspects required here because I don’t write software
   and this is a very simple explanation of what would be required in reality however
   what I was thinking is firstly that, if the site pulling and pushing data was
   known to the software / plugin via a setting as the DEV and or production site
   and providing content is only pulled from the production site to the DEV site
   and then inserted deleted etc to the production site, it may help.
 * So first off you would pull the production site to the DEV in its entirety. (
   WP Migrate DB pro or duplicator etc can do this job well already.)
 * Then if there was a date range setting (IE from what ever day the data was pulled
   down (until the data insert, delete etc date) in the plugin / software allowing
   the complete exclusion of data outside of the set date range, while data inside
   the range is compared by date, ID and GUID, content, revision, etc and based 
   on where it exists at the time. IE DEV or production.
 * Whether the content differs by ID/GUID and or content and providing its the latest
   revision only, that data could perhaps be stored to a file that you can later
   run to insert the new data which is not currently in the production site. So 
   you would also exclude new data already in the production site from being inserted
   as its not required because it already exist.
 * At this point like any data inserted into the database, it could generate a new
   ID/GUID and maybe even time and date stamp.
 * This way if another entry has been added to the production site using the same
   ID or GUID as the entry coming from the DEV site it could be altered by ID etc
   to work in with the production site, as these entries haven’t been accessed/used
   by RSS etc yet as they are coming from DEV so it doesn’t matter if the ID changes.
   Well not to my knowledge anyway.
 * So in other words, you cant duplicate and confuse entries by ID because the database
   would just create the next sequential ID number upon each row being inserted.
 * Therefore deleted posts on the DEV site could also be deleted on the production
   site because the data and IDs no longer exists on the DEV site and as it compares
   all data between the date range and its only designed to push from DEV up (not
   push from Production down) so it could safely assume it was removed and introduce
   a delete string to remove it from the production site.
 * Of course the production site would potentially need to be in maintenance/unavailable
   for a short period when you do this so no new data is entered during the process
   but it wouldn’t need to be offline while building and testing the DEV site, just
   while doing the final insert etc and test to make sure it all works. So maybe
   an hour or something as oppose to days or more.
 * Just a thought. I have no doubt it would requires some magical coding but I would
   like to think someone could make this concept work or something like it, if it
   isn’t already out there somewhere.
 * ———
 * So how is one suppose to get updates from a DEV site into the production site
   without overwriting the changes made to the production site, while building and
   testing the DEV site. Do you have to manually finding and re-enter each new row?
   Surely there is some easy way of doing this if it isn’t such a big deal?
 * Please explain how its not a big deal. I’m very keen to know how to do this and
   where to look to understand how its done without breaking stuff.
 * I still believe there has to be some sort of solution for this. Surely it would
   be impossible to manage a big site without some sort of solution?
 *  [nohler](https://wordpress.org/support/users/nohler/)
 * (@nohler)
 * [10 years, 10 months ago](https://wordpress.org/support/topic/pull-push-sync-wordpress/#post-5919792)
 * Have you guys seen this yet: [https://ithemes.com/2015/05/05/how-to-set-up-a-wordpress-staging-site-with-backupbuddy-deployment/](https://ithemes.com/2015/05/05/how-to-set-up-a-wordpress-staging-site-with-backupbuddy-deployment/)
 * it’s a new feature of Backupbuddy for deployment.
 * FYI – I’m not affiliated with the Backupbuddy people.

Viewing 5 replies - 1 through 5 (of 5 total)

The topic ‘Pull Push Sync WordPress’ is closed to new replies.

## Tags

 * [pull](https://wordpress.org/support/topic-tag/pull/)
 * [push](https://wordpress.org/support/topic-tag/push/)

 * In: [Fixing WordPress](https://wordpress.org/support/forum/how-to-and-troubleshooting/)
 * 5 replies
 * 3 participants
 * Last reply from: [nohler](https://wordpress.org/support/users/nohler/)
 * Last activity: [10 years, 10 months ago](https://wordpress.org/support/topic/pull-push-sync-wordpress/#post-5919792)
 * Status: not resolved

## Topics

### Topics with no replies

### Non-support topics

### Resolved topics

### Unresolved topics

### All topics
