We often get questions about what’s coming next to WP Migrate DB Pro or if we ever plan to include X feature or support Y sites. After shipping our latest major release, the new Theme & Plugin Files addon, a few weeks ago, we started to ask that question ourselves.
For anyone curious about where WP Migrate DB Pro is going, this article will give you a peek inside our working roadmap for the next several versions.
Where We’ve Been
Around this time last year, I wrote about why the WP Migrate DB Pro release had taken twice as long as it should have. And here we are again, nearly another year gone by and only one major release to speak of: the new Theme & Plugin Files addon we released a few weeks ago.
The good news is we didn’t repeat the same mistakes this past year. The main reason it took so long is that the minimum version of the Theme & Plugin Files addon turned out to be a lot of work. Transferring files over HTTP in a performant way (as good or better than FTP) and ensuring data integrity (checksum ftw!) was a challenging feat as Peter described in the release post.
The bad news is the technical debt in WP Migrate DB Pro that I wrote about last year slowed us down a lot. And so we’ve decided to focus on servicing technical debt for the next release.
Next Release
Peter has been performing a major reorganization of the code over the past 6 weeks or so, which should speed up development going forward. Believe it or not we’re on track to release that along with an all-new Backups tab later this month. Yup, another major release after just a couple of months!
The Backups tab will simply list the files in your backups folder and have download and delete functionality to start:
Please keep in mind that these are wireframes and that the finished product may look significantly different.
This release will also require PHP version 5.4+, so if you still need to use WP Migrate DB Pro on a server running PHP 5.2 or 5.3 you’ll either need to upgrade or use an older version of WP Migrate DB Pro.
If you’ve turned on beta update notices, you should see one very soon. To turn on beta update notices, simply visit the Settings tab in WP Migrate DB Pro.
The Release After Next: 2.0
The release after next is going to be a biggie. The plugin’s Javascript (JS) is in terrible condition. It was written in jQuery six years ago and is a tangled mess of nested callback hell. The team absolutely dreads working on it and it’s painfully slow going to add or update anything in there.
We’re going to throw it all out and start over with React. Why React over Vue.js or another JS framework? I’ll let Peter start the holy war here:
React is the obvious choice for a JavaScript rewrite as it’s been chosen by the Gutenberg team and will be available in WordPress core going forward. I also personally have more experience with React so it’s a no-brainer for me. If you’re here for the holy war, check out the comments of the Vue vs React post I published a couple of months ago. 🔥
Because starting over with React involves heavy updates to the UI, we’re also going to refresh the UI a bit, better grouping settings together and other small details that are long overdue.
We’ll also be adding some more significant features, like the option to back up the database without running a migration or to automatically save a recent migration so it can easily be reused or saved as a migration profile.
A new solid UI foundation with fresh, well-written JS is going to do wonders for us going forward, allowing us to work more quickly and painlessly. Which should mean we can deliver on more features and other product improvements faster.
Beyond 2.0
What should WP Migrate DB Pro look like in a couple of years time? That’s the question we asked ourselves. So we opened Balsamiq and started sketching what our customers have told us they’d like to see and what we’d like to see ourselves.
Although we haven’t prioritized yet, we definitely want to tackle the following items in the future.
Dry Run
It would be pretty sweet if in addition to pausing a migration before it completes (like you can already), you could view the search and replace changes and decide whether you want to proceed with replacing the database or cancel and make some adjustments before running it again.
Friendlier Backups
Backup file names are currently not descriptive at all. It would be nice to know why a backup exists in addition to when it occurred:
It would also be nice to restore a backup right there on the Backups tab.
Safer Backups
Something that has always irked me about WP Migrate DB Pro’s backups is their location. They’re in a publicly accessible folder! 😬
Sure we suffix each filename with a salt string so it’s hard to guess, but yikes, that’s still not very safe. It would be infinitely better if you could choose an offline folder for them to be saved to instead:
Independent Connections
Currently the connection info for remote sites is saved to each profile. But what if you have a few different profiles for the same site and you need to update the connection info? Yup, you need to update each profile. Annoying. Making the connection info independent of profiles will allow you to update it once.
Push/Pull One Post
Once the connection info is independent of profiles, we can do other things with it, like push an individual post to a remote site or pull in a post from a remote site.
Migrate Files without the Database
Although we have an easy little hack for migrating files without the database, it would be great if there was a more intuitive way to do it. We plan to have exactly that:
Preserving Options
Currently you can preserve the active_plugins
option from the wp_options
table when performing a migration:
But what about other options, like which theme is active and whether or not the site can be indexed by search engines? We’d like to enable you to easily preserve any option in the wp_options
table:
Currently you can achieve this is with the wpmdb_preserved_options
filter, but it will be much more convenient to be able to do it via the UI.
Regular Expressions and Case Sensitivity
Currently WP Migrate DB Pro’s search & replace is case-sensitive and does not allow case-insensitive searches, nor does it allow regular expressions (regex). We’d like you to be able to toggle these on and off.
CLI Command Builder
Migration commands can be pretty long and ugly. It’s not usually pleasant to type them out, so we thought it would be handy if you could set up a migration via the UI and it would spit out a CLI command for you to turn into an alias or set up a cron to run it on a schedule.
Import/Export Migration Profiles
Many of our customers have told us that they’d like to import and export migration profiles. We plan to implement this the same way many plugins do: JSON.
We considered allowing you to push/pull profiles but JSON has the advantage of being easily editable. Don’t want to import all the profiles? Just delete that part of the JSON. Need to change the name of a few profiles? Open it in your favorite editor and run a search and replace.
Subsite-to-Subsite for the Multisite Tools Addon
Currently there is one major feature missing from the Multisite Tools addon: the ability to push/pull a subsite (database and media) from one multisite install to another multisite install. We need to tackle this at some point.
CLI Support for the Theme & Plugin Files Addon
We tried to keep the first release of the Theme & Plugin Files addon as minimal as possible to get it released sooner than later. This meant sacrificing features like CLI support. There is currently no CLI support for the Theme & Plugin Files addon but it’s definitely something we want to add in the future.
Speeding Up Migrations
When we built the new high-performance file transfer system for the Theme & Plugin Files addon, we made sure that it could transfer any data, not just files. We plan to swap out the old transfer systems for database and media file migrations which should make a massive speed improvement when migrating data and media files.
Resume Migration on Error
There are few things more frustrating than running a large migration and a network blip causes the whole thing to come crashing to a halt. Currently the only thing you can do is start over and hold your breath again. We plan to have better recovery from errors like this in the future.
Handle Different Table Prefixes
Currently, if you try running a push or pull migration between two sites that have different database table prefixes, you get a warning message like this:
I think it’s high time we ditch this warning and gracefully handle this for you. It was a complicated problem when we last looked at it years ago but it’s at least worth revisiting.
Conclusion
WP Migrate DB Pro turned five years old this year and people still love it…
This will take a while. Better get some ☕️
— Nicolas Bazinet (@CaptnBaz) October 23, 2018
(thank you @dliciousbrains for this awesome plugin) pic.twitter.com/x8UMTrWWq3
I already love Migrate DB Pro from @dliciousbrains, and recently we’ve been using extensively to import/export between multisite and single install and I have to say, it’s been flawless. 💯
— Mike Hemberger (@JiveDig) October 16, 2018
So the Theme and Plugin files add-on for WP Migrate DB Pro from @dliciousbrains is 😙👌 Paired with the Media add-on and I rarely have to use FTP at all now!
— Jack McConnell (@jackmcconnell) October 8, 2018
https://twitter.com/allisonplus/status/1040300604508258304
There's only one plugin that has truly shocked me with its reliability and value: WP Migrate DB Pro from @dliciousbrains
— Matt (@matthew_zak) August 14, 2018
But as the length of this post demonstrates there is plenty of room for improvement and we’re far from done.
What are the top 3 things you would like to see in WP Migrate DB Pro? Something from this list or something else? Let us know in the comments.