Getting started →
Download MigrateWP, create the mwp alias, set up SSH access and run your first migration.
Configuration →
Every setting in migratewp.conf, what it means and where to find the value.
Command reference →
push, pull, rollback and report, plus the flags each one accepts.
Requirements →
What has to be installed on your Mac and on the remote Linux server before you start.
How MigrateWP works
MigrateWP is a single Bash script. It does not install anything into WordPress, it has no plugin, and it never asks you to log in to either site. Instead it drives tools you already have:
- rsync copies
wp-contentbetween the two machines, transferring only the files that differ. - WP-CLI exports the database, imports it at the other end, and runs the search and replace on the site URL — so serialised arrays survive the trip intact.
- SSH carries everything, using the key you have already given the server.
Before it moves anything, MigrateWP runs a set of pre-flight checks: that the local site is up, that both directories exist, that WP-CLI is on your path, and that the SSH user can actually log in. If any of those fail it stops before touching your data.
It then takes a backup of whichever side it is about to overwrite — files to wp-content_bak, and a dump of the database — which is what makes rollback possible.
A note on direction
MigrateWP is built around one clear mental model: your Mac is the development environment, the Linux server is the remote. push always means local → remote, pull always means remote → local. There is no ambiguity about which way the data went, and the changelog records each move.
New here? Start with Requirements to check your machines are ready, then work through Getting started.