WordPress has good news and bad on WP Migration.

WordPress has always had a good set of  migration tools; particularly when importing or creating a brand newsite from scratch. This is the good news.  But even in the case of imports users have to be cautious:
wpmove1WordPress Importer has 67  low 1-rating reviews and with reason. Both WordPress Importer and Category to Tag conversions can have unexpected consequences if they overwrite and/or delete existing posts or categories and tags. The problem is the database primary keys used in posts, pages, categories, and other WP objects become the database foreign keys used by many theme and plugin routines and their associated tables. Ditto for custom fields These primary and foreign key a)must not be deleted or b)inadvertently changed – otherwise a WordPress website  will become partially to completely dysfuntional depending on how many keys were changed or deleted.

This is the bad news on WP Migrations.

So let me repeat – if you are moving WordPress tables to an empty  WP website, then the migration should work  because all the tables and associated database keys are moved without change. However, if you try to move a WordPress site to a partly filled WordPress website, you will have troubles because among other things post and page table rows will be overwritten on the receiving site or those rows will be blocked from being received. The developers at the excellent Database Backup plugin, WP DB Migrate Pro, have a clear article about the problems of WordPress  Staging to Live-server transfers. The WP DB Migrate team is clear:

If you push your local changes to the live website you’re going to overwrite your client’s work. But, if you pull the live database back into your local environment you will overwrite your own work.Currently WP Migrate DB Pro does not have the ability of “merging” two database together. This has been an often requested feature and we are currently brainstorming ideas of how this could be solved with the plugin. So far though, our solutions are looking very complex and still require manual conflict resolution. We haven’t come up with a magic bullet just yet.

Now there are several good backup vendors whose UI interfaces appear to imply that partial transfers will work. Here is Backup Buddy:
bbuddyproblem5But these partial transfers only work  100% when starting from scratch – moving to an empty directory or domain.The following screenshot shows why:
wpmove2This dump of the wp-posts table from a small WordPress test, contains not just  post and  page entrieis but also all  revisions, Salon CPT, Meta Slider, and media file entries too.The primary database keys used here appear in the bookings, wp-postmeta, and wp-terms tables as database foreign-keys. Severe problems occur if wp-posts is overwritten or partially cleared/changed.

Summary

For data migration to WordPress there is a good story. And for exporting to other non-WordPress sites thru RSS or other extensions there is also a pretty good story. And if you are transferring a complete WordPress website to a new domain, directory or hosting service plugins like Duplicator [free] and Backup Buddy will do the job. But for merging transfers between a Development/Staging to an Active/Live WordPress server, users are in uncharted and incomplete territory – a rare gap in WordPress operational services.