WordPress plugin intelligence profile

CraftRoq Relocate DB

Safely search and replace URLs and text across your WordPress database, with dry runs, serialized data support and a full history.

WP PlugIndex snapshot

Current directory snapshot

Tested up to WordPress 7.1
Current version1.1.0
WordPress coverageTested up to WordPress 7.1
Minimum stackWP 6.5 · PHP 8.1
Directory statusactive
Last directory update7 Oct 202625d ago
Active installationsNewAdoption metric — not a quality score
WordPress.org ratingNo WordPress.org ratings yet
Official packageDirect from WordPress.org

Repository metrics are context, not quality scores. Active installations measure adoption and can strongly reflect a plugin’s age and historical popularity. Ratings, recent updates and “Tested up to” metadata also do not guarantee modern code, error-free operation, security, feature completeness or suitability for a particular site. Why active installs don’t tell the whole story →

WP PlugIndex currently records CraftRoq Relocate DB version 1.1.0 as active, updated 25d ago and tested up to WordPress 7.1.

Overview

About this plugin

CraftRoq Relocate DB changes text across your database: moving a site from staging to production, switching to HTTPS, changing a domain, or renaming something everywhere it appears.

It is built for doing that on real sites without breaking them.

Preview first, always

Every replacement starts as a dry run. It searches the tables you choose, changes nothing, and shows exactly what would change: rows and replacements per table and column, values it would leave alone and why, and before/after examples. Only a completed dry run can be applied, and applying it repeats exactly what was previewed.

Serialized data and JSON handled properly

Plugins and themes store settings as serialized PHP. A plain text replacement breaks those values whenever the length changes. Relocate rewrites serialized data token by token and recalculates every length, without unserializing it, so no plugin code runs and objects, private properties, references and numbers stay exactly as they were.

URLs inside JSON (as page builders store them, with escaped slashes) are found and replaced too.

A value is left untouched, and reported, when changing it could corrupt it: serialized data that is already broken, a custom serialized format only its own class understands, or JSON that would become invalid.

Made for large databases

Tables are processed in small batches by primary key, a few seconds per request, so there are no timeouts or memory limits to hit however big the tables are. Progress is saved after every batch. If the page is closed or the connection drops, the job can be continued from the last completed batch.

Safety measures

  • Each batch of a replacement is one database transaction: it is saved completely or not at all, so an interruption never leaves a batch half applied or applies it twice. This needs InnoDB tables, which WordPress uses by default; the confirmation step warns about any that are not.
  • The original value of everything a replacement changes is saved to a downloadable file of SQL statements. Importing it puts those values back.
  • The site address (siteurl and home) is changed last, so you are not logged out part-way through.
  • Tables without a primary key or suitable unique key are skipped, because their rows cannot be updated one at a time safely.
  • Post GUIDs are left alone unless you ask for them to be changed.
  • Only administrators who can post unfiltered HTML can use it.

Also included

  • Up to 20 search and replace pairs in one job, applied together in a single pass.
  • Choose the tables to search, and leave out individual columns.
  • Case-insensitive and whole-word matching, and matching the http:// and protocol-relative versions of a URL.
  • A live progress view with the current table, rows scanned, changes found and time remaining.
  • A searchable, sortable history of every job, a log, and automatic clean-up. Old jobs can also be deleted by hand.
  • Import / Export: download the database as a.sql.gz file and import.sql or.sql.gz files, in resumable steps, with the site address changed on the way out or on the way in. Imported tables are built next to the ones in use and put in place together at the end, so the site keeps working during an import, and one that fails or is cancelled leaves them as they were.
  • Export and import the plugin’s settings as a JSON file.
  • WP-CLI commands: wp crq search-replace and wp crq resume.
WordPress.org metadata

Plugin tags

Topics listed for this plugin in the WordPress.org directory.

  • search replace
  • database
  • migration
  • serialized
  • urls
Compatibility & maintenance

Compatibility & maintenance

Tested with WP 7.1

Marked as tested with the current WordPress 7.1 release.

Current WordPress releaseWordPress 7.1
WordPress.org Tested up to7.1
Minimum requirementsWordPress 6.5 · PHP 8.1
Update activity7 Oct 202625d ago

“Tested up to” is directory metadata supplied by the plugin author. WP PlugIndex does not turn an older declaration into a claim that the plugin is incompatible.

Changes recorded by WP PlugIndex

Recent tracked changes

Version1.0.01.1.0
Tracking & source

WP PlugIndex tracks public WordPress.org directory metadata and records selected version, compatibility and availability changes as they are detected.

Plugin watchlist

Watch this plugin

Sign in to your WP PlugIndex account or create a free account. Free accounts can watch up to 5 plugins and see what changed.

Watch limit

Watchlist limit reached

You have reached your current active watch limit.