Description
JRT Database and File Migrator moves WordPress databases between environments without corrupted serialized data, timeouts, or guesswork.
Free features
- Export any selection of database tables to a SQL file (optionally gzip-compressed)
- Find & replace on the way out — PHP-serialized and JSON values are rewritten safely with corrected string lengths
- Import a SQL file back into any site, including one that uses a different table prefix
- Chunked, resumable processing: large databases never hit PHP timeouts, and an interrupted job resumes where it stopped
Pro features (subscription)
- Push & pull your database directly between two connected sites over signed requests
- Transfer media uploads, themes and plugins alongside the database — only new and changed files are sent
- Destination checks are run before a transfer starts, so a server that cannot receive files says so up front instead of failing halfway
- Automatic safety backup before every import and pull
- Saved profiles: store a configuration once, re-run it in one click
Pro licences are sold as subscriptions handled by Freemius, including checkout, invoices and licence management.
FAQ
-
Does the free version phone home?
-
No data leaves your site unless you opt in to Freemius usage tracking or activate a Pro licence.
-
How does find & replace handle serialized data?
-
Two strategies, chosen per value. Where the payload can be parsed, it is unserialized with object instantiation disabled, walked recursively, and re-serialized with corrected byte lengths. Where it cannot — for example when it contains objects of classes this site does not have — a token rewriter edits the
s:N:"..."segments in place without ever instantiating anything, so PHP object injection is not possible either way.If a payload cannot be handled safely by either strategy it is left untouched. The plugin will not corrupt data to force a replacement.
-
Which files are transferred?
-
Media uploads, themes and plugins, each selectable independently. Files are compared by size and modification time, so re-running a transfer only sends what actually changed.
Anything else under
wp-content/— includingmu-plugins/, caches, and files at the site root such as.htaccess— is not transferred. Move those yourself if your site depends on them. -
Can I pull a live site down to a local development install?
-
Yes, and this is the direction to use. A pull is driven entirely by the site you are sitting at: it makes outbound requests to the live server, which never needs to reach back. That means your local machine does not have to be publicly reachable, and it does not need HTTPS of its own.
Pushing to a local machine from a live server is not possible without a tunnel, because the live server would have to open a connection to your desktop.
-
A transfer failed with a permissions error. What now?
-
The destination reports the directory it could not write to. Give the web server write access to that directory and run the transfer again.
Transferred files are given the same permissions WordPress itself uses for new files (
FS_CHMOD_FILE/FS_CHMOD_DIR), so a restrictive umask on the receiving server cannot leave you with files the web server is unable to read back. -
My local install cannot verify the live site’s certificate.
-
Turn off “Verify TLS certificates” in Settings. This is separate from the plain-HTTP option, so switching it off does not otherwise weaken how sites connect. Leave it on in production.
-
Transfers time out against a slow server.
-
Raise “Remote request timeout” in Settings. A request that times out part way through cannot be retried safely, because it may already have been applied on the other side, so it ends the transfer rather than risking duplicate work.
-
How are site-to-site transfers secured?
-
Each site has a random 64-character connection key. Every request between sites is signed with HMAC-SHA256, has a 5-minute validity window, and replay protection. HTTPS is required by default.
-
Does it work on multisite?
-
Not yet. Multisite support is planned.
Reviews
There are no reviews for this plugin.
Contributors & Developers
“JRT Database and File Migrator” is open source software. The following people have contributed to this plugin.
ContributorsTranslate “JRT Database and File Migrator” into your language.
Interested in development?
Browse the code, check out the SVN repository, or subscribe to the development log by RSS.
Changelog
1.0.0
- Initial release.
- Free: table-selective export, serialized-safe find & replace, import across differing table prefixes, resumable chunked jobs.
- Pro: push/pull database transfers between connected sites, media/theme/plugin file transfers, automatic safety backups, saved profiles.
- Pro: destination writability is checked before a transfer begins, and permission failures report the directory at fault instead of a generic error.
- Pro: TLS certificate verification and the remote request timeout are configurable independently of the plain-HTTP option.
