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?