WP Migrate DB Pro 2.1 Released: Regular Expression and Case-Sensitive Find and Replace, Accessibility Improvements, and More

WP Migrate DB Pro 2.0 was probably our most significant update to date, and we were pretty excited to get it released to our customers.

After four bugfix releases to 2.0, to address any reported issues, we were able to turn our attention back to adding new features and improvements to the plugin.

We’re therefore happy to announce that WP Migrate DB Pro 2.1 is now available! Let’s take a look at all the new goodies inside this release.

Regular Expression Custom Find and Replace

One of our most long-awaited feature proposals is the ability to use regular expressions (regex) when running a custom find and replace on data during a migration. It’s been on our roadmap for a while 😅

Regular Expressions Issue 411

We often have support requests where customers need to find and replace data based on a complex set of conditions rather than just a simple string. Examples include replacing a specific shortcode name across all the content on a site while retaining the shortcode attributes or performing complex URL updates.

In WP Migrate DB Pro 2.1, we’ve added the ability to enable regex functionality on each custom find and replace row. You can enable the regex feature by clicking on the regex button next to a find and replace field.

Enabling regex on a find and replace field

When enabled, you can enter a full pattern regex in the find field, and the plugin will warn you if the pattern is not a valid regular expression.

Find and replace field warning of invalid regex

Your patterns need to contain delimiters, but you are free to use any regex valid delimiter characters, and you are able to use mode modifiers. If the regex is valid, you’ll be able to run the regex find and replace across your site data.

Valid regex for find and replace field

You can read this help doc for more information on how to use this feature.

Case-Sensitive Custom Find and Replace

At the same time, we’ve added the ability to enable case-sensitive searches for your custom find and replace rows.

The default functionality of the WP Migrate DB Pro custom find and replace is to perform case-insensitive searches. This means that if you entered User in the find field, it would find and replace instances of both User and user. Not ideal if you only want to replace instances of User!

By adding the ability to enable a case-sensitive custom find and replace row, alongside simple strings and regular expressions, you are now able to more finely control how data is modified either during a push or pull migration, or if you’re using the Find and Replace tool on any of your WordPress environments.

Showing all custom find and replace options

To learn more about how to use case-sensitive find and replace, see this help doc.

CLI Support for Both Regex and Case-Sensitive Find and Replace

We know developers love the command line; it’s why we built the CLI addon for WP Migrate DB Pro. We’d be silly to implement two such significant developer-focused additions to the custom find and replace functionality without also ensuring that it’s included in the CLI addon.

We’ve added two new CLI arguments, for both regex and case-sensitive find and replace, to the export, import, push/pull and find & replace subcommands. You now have the option to add as many complex find and replace sets in your CLI commands as you would via the user interface.

wp migratedb pull https://hellfish.media /geY04VQH9NH03BZHWWsHhLkKgLN/SvRq/dRDMXN \
  --find=//hellfish.media,/sites/hellfish.media/files \
  --replace=//hellfish.test,/home/development/websites/hellfish \
  --regex-find='/\[foo id="([0-9])"/' \
  --regex-replace='[bar id="$1"' \
  --case-sensitive-find=User \
  --case-sensitive-replace=Person \
  --skip-replace-guids \
  --backup=prefix

You can read all about using these new arguments, with examples, in our CLI command help docs for each subcommand.

Accessibility Improvements for Find and Replace

One of the biggest areas of improvement that we’re focusing on since the 2.0 release is accessibility. By moving to the new user interface, we also want to ensure that it’s as easy as possible for any of our customers to use, no matter how they access their WordPress dashboard.

We’ve significantly improved the usability of the Find and Replace interface when solely using the keyboard, and improved the input labels for screen readers.

We’re committed to ensuring that any new features we add will not add accessibility issues and will focus on improving accessibility for these features. You can expect to see more accessibility improvements in future releases of WP Migrate DB Pro.

Welcome Phil 🎉

During this release cycle, we welcomed a new team member to the WP Migrate DB Pro team – Phil Webster. Phil is a developer and percussionist from Pittsburgh, Pennsylvania, who did a fantastic job ramping up in the middle of a development cycle. Phil also has extensive experience with accessibility, which is a perfect match for our focus on accessibility improvements. If you chat with Phil via support, please join us in welcoming him to the team.

Other Improvements

We’ve included some additional quality-of-life improvements in this release.

WP Migrate DB Pro makes extensive use of the WordPress REST API to transfer data during migrations. The plugin will now automatically check if the WordPress REST API is disabled or altered somehow and ask you to enable it to allow migrations to complete.

REST API Notification

We’ve also improved the user experience for selecting tables to be migrated. It’s now possible to increase the size of the table select area by clicking and dragging the bottom right of the area. You can use a keyboard shortcut to select multiple tables at once, by clicking the first table in your selection, and then using Shift + Click on the last table in the list.

Expanding the table select area, and selecting tables

Finally, we’ve thoroughly tested WP Migrate DB Pro with WordPress 5.8 (codenamed Tatum), and it’s ready to be used on the latest WordPress release.

Per User License Activation

During our post 2.0 development cycle, we updated the behavior of license activations in WP Migrate DB Pro. While this is not specifically a 2.1 release note, it’s worth taking the time to learn about the change.

Before WP Migrate DB Pro 2.0.4, when you activated your license on a site, it was activated globally, giving all admin users access to the WP Migrate DB Pro features. Now, when a license key is activated in the plugin, the license is applied to the user activating the license. This allows you to use your license key on a client site without giving them access to your license features. You can read more about it in our Activating Your License doc.

This change also paved the way for our new Organization License options. Organization licenses are perfect for development agencies, which may have multiple developers working for different clients. Organization licenses allow the license owner to create and manage multiple license seats. License seats give business owners a way to provide each developer with an individual WP Migrate DB Pro license key without purchasing additional licenses.

Next Up

So what’s next in store for WP Migrate DB Pro? We’re already planning the features we want to include in the 2.2 release.

  • Preview a find and replace before a migration is run to review and verify the changes before the data is replaced
  • Handling migrations between sites with different table prefixes
  • Accessibility improvements

Are you excited about the new WP Migrate DB Pro 2.1 release? What do you think about regex and case-sensitive find and replace capabilities?

What’s your wish list feature that you’d like to see in the next version? Let us know in the comments.

About the Author

Iain Poulson Product Manager

Iain is a product manager based in the south of England. He also runs multiple WordPress products. He helps people buy and sell WordPress businesses and writes a monthly newsletter about WordPress trends.