0

I have a Wordpress 5.5 / PHP7.3 MultiSite production site installation that I am trying to migrate to my local LAMP dev environment so that I can edit.

The Problem: is that when I run Search-Replace-DB script or the WP-Cli multisite migration scripts. One subsite loads perfectly on the new development domain, meanwhile the primary site and a subsite that have the same theme, successfully loads, but the theme seems broken (visual composer based). Possible, additional non-visual errors as well.

I have download the all the files, configured LAMP virtualhost correctly, and imported the database to my local LAMP environment via PHPMYADMIN (NOTE: Prior to exporting the production db, I network deactivated the Yoast SEO plugin).

My MultiSite has the following urls that need to be changed:

1.) example.org --> localhost.example.org

2.) webinar.example.org --> webinar.localhost.example.org

3.) blog.example.org --> blog.localhost.example.org (domain mapped to "otherdomainname.org") --Works flawlessly

ERROR MESSAGES:

Despite, network deactivating the Yoast SEO plugin, prior to exporting to the production as recommended, I receive the following error when I execute Search-Replace-DB:

The dry-run option was selected. No replacements will be made.

The table "tclrx_2_cleantalk_sfw" has no primary key. Changes will have to be made manually.

2: Erroneous data format for unserializing 'ActionScheduler_IntervalSchedule' in /var/www/html/example.org/DP-Search-Replace-DB/srdb.class.php on line 833

This is usually caused by a plugin storing classes as a serialised string which other PHP classes can't then access. It is not possible to unserialise this data because the PHP can't access this class. P.S. It's most commonly a Yoast plugin that causes this error. Your changes will still have taken place within the rest of the database.

2: Erroneous data format for unserializing 'ActionScheduler_IntervalSchedule' in /var/www/html/example.org/DP-Search-Replace-DB/srdb.class.php on line 833

This is usually caused by a plugin storing classes as a serialised string which other PHP classes can't then access. It is not possible to unserialise this data because the PHP can't access this class. P.S. It's most commonly a Yoast plugin that causes this error. Your changes will still have taken place within the rest of the database.

2: Erroneous data format for unserializing 'ActionScheduler_IntervalSchedule' in /var/www/html/example.org/DP-Search-Replace-DB/srdb.class.php on line 833

This is usually caused by a plugin storing classes as a serialised string which other PHP classes can't then access. It is not possible to unserialise this data because the PHP can't access this class. P.S. It's most commonly a Yoast plugin that causes this error. Your changes will still have taken place within the rest of the database.

2: Erroneous data format for unserializing 'ActionScheduler_IntervalSchedule' in /var/www/html/example.org/DP-Search-Replace-DB/srdb.class.php on line 833

This is usually caused by a plugin storing classes as a serialised string which other PHP classes can't then access. It is not possible to unserialise this data because the PHP can't access this class. P.S. It's most commonly a Yoast plugin that causes this error. Your changes will still have taken place within the rest of the database.

2: Erroneous data format for unserializing 'ActionScheduler_IntervalSchedule' in /var/www/html/example.org/DP-Search-Replace-DB/srdb.class.php on line 833

This is usually caused by a plugin storing classes as a serialised string which other PHP classes can't then access. It is not possible to unserialise this data because the PHP can't access this class. P.S. It's most commonly a Yoast plugin that causes this error. Your changes will still have taken place within the rest of the database.

    
2: Erroneous data format for unserializing 'ActionScheduler_IntervalSchedule' in /var/www/html/example.org/DP-Search-Replace-DB/srdb.class.php on line 833

This is usually caused by a plugin storing classes as a serialised string which other PHP classes can't then access. It is not possible to unserialise this data because the PHP can't access this class. P.S. It's most commonly a Yoast plugin that causes this error. Your changes will still have taken place within the rest of the database.

2: Erroneous data format for unserializing 'ActionScheduler_IntervalSchedule' in /var/www/html/example.org/DP-Search-Replace-DB/srdb.class.php on line 833

This is usually caused by a plugin storing classes as a serialised string which other PHP classes can't then access. It is not possible to unserialise this data because the PHP can't access this class. P.S. It's most commonly a Yoast plugin that causes this error. Your changes will still have taken place within the rest of the database.

2: Erroneous data format for unserializing 'ActionScheduler_IntervalSchedule' in /var/www/html/example.org/DP-Search-Replace-DB/srdb.class.php on line 833

This is usually caused by a plugin storing classes as a serialised string which other PHP classes can't then access. It is not possible to unserialise this data because the PHP can't access this class. P.S. It's most commonly a Yoast plugin that causes this error. Your changes will still have taken place within the rest of the database.

2: Erroneous data format for unserializing 'ActionScheduler_IntervalSchedule' in /var/www/html/example.org/DP-Search-Replace-DB/srdb.class.php on line 833

This is usually caused by a plugin storing classes as a serialised string which other PHP classes can't then access. It is not possible to unserialise this data because the PHP can't access this class. P.S. It's most commonly a Yoast plugin that causes this error. Your changes will still have taken place within the rest of the database.

2: Erroneous data format for unserializing 'ActionScheduler_IntervalSchedule' in /var/www/html/example.org/DP-Search-Replace-DB/srdb.class.php on line 833

This is usually caused by a plugin storing classes as a serialised string which other PHP classes can't then access. It is not possible to unserialise this data because the PHP can't access this class. P.S. It's most commonly a Yoast plugin that causes this error. Your changes will still have taken place within the rest of the database.

2: Erroneous data format for unserializing 'ActionScheduler_IntervalSchedule' in /var/www/html/example.org/DP-Search-Replace-DB/srdb.class.php on line 833

This is usually caused by a plugin storing classes as a serialised string which other PHP classes can't then access. It is not possible to unserialise this data because the PHP can't access this class. P.S. It's most commonly a Yoast plugin that causes this error. Your changes will still have taken place within the rest of the database.

2: Erroneous data format for unserializing 'ActionScheduler_IntervalSchedule' in /var/www/html/example.org/DP-Search-Replace-DB/srdb.class.php on line 833

This is usually caused by a plugin storing classes as a serialised string which other PHP classes can't then access. It is not possible to unserialise this data because the PHP can't access this class. P.S. It's most commonly a Yoast plugin that causes this error. Your changes will still have taken place within the rest of the database.

2: Erroneous data format for unserializing 'ActionScheduler_IntervalSchedule' in /var/www/html/example.org/DP-Search-Replace-DB/srdb.class.php on line 833

This is usually caused by a plugin storing classes as a serialised string which other PHP classes can't then access. It is not possible to unserialise this data because the PHP can't access this class. P.S. It's most commonly a Yoast plugin that causes this error. Your changes will still have taken place within the rest of the database.

2: Erroneous data format for unserializing 'ActionScheduler_IntervalSchedule' in /var/www/html/example.org/DP-Search-Replace-DB/srdb.class.php on line 833

This is usually caused by a plugin storing classes as a serialised string which other PHP classes can't then access. It is not possible to unserialise this data because the PHP can't access this class. P.S. It's most commonly a Yoast plugin that causes this error. Your changes will still have taken place within the rest of the database.

2: Erroneous data format for unserializing 'ActionScheduler_IntervalSchedule' in /var/www/html/example.org/DP-Search-Replace-DB/srdb.class.php on line 833

This is usually caused by a plugin storing classes as a serialised string which other PHP classes can't then access. It is not possible to unserialise this data because the PHP can't access this class. P.S. It's most commonly a Yoast plugin that causes this error. Your changes will still have taken place within the rest of the database.

2: Erroneous data format for unserializing 'ActionScheduler_IntervalSchedule' in /var/www/html/example.org/DP-Search-Replace-DB/srdb.class.php on line 833

This is usually caused by a plugin storing classes as a serialised string which other PHP classes can't then access. It is not possible to unserialise this data because the PHP can't access this class. P.S. It's most commonly a Yoast plugin that causes this error. Your changes will still have taken place within the rest of the database.

2: Erroneous data format for unserializing 'ActionScheduler_IntervalSchedule' in /var/www/html/example.org/DP-Search-Replace-DB/srdb.class.php on line 833

This is usually caused by a plugin storing classes as a serialised string which other PHP classes can't then access. It is not possible to unserialise this data because the PHP can't access this class. P.S. It's most commonly a Yoast plugin that causes this error. Your changes will still have taken place within the rest of the database.

2: Erroneous data format for unserializing 'ActionScheduler_IntervalSchedule' in /var/www/html/example.org/DP-Search-Replace-DB/srdb.class.php on line 833

This is usually caused by a plugin storing classes as a serialised string which other PHP classes can't then access. It is not possible to unserialise this data because the PHP can't access this class. P.S. It's most commonly a Yoast plugin that causes this error. Your changes will still have taken place within the rest of the database.

2: Erroneous data format for unserializing 'ActionScheduler_IntervalSchedule' in /var/www/html/example.org/DP-Search-Replace-DB/srdb.class.php on line 833

This is usually caused by a plugin storing classes as a serialised string which other PHP classes can't then access. It is not possible to unserialise this data because the PHP can't access this class. P.S. It's most commonly a Yoast plugin that causes this error. Your changes will still have taken place within the rest of the database.

2: Erroneous data format for unserializing 'ActionScheduler_IntervalSchedule' in /var/www/html/example.org/DP-Search-Replace-DB/srdb.class.php on line 833

This is usually caused by a plugin storing classes as a serialised string which other PHP classes can't then access. It is not possible to unserialise this data because the PHP can't access this class. P.S. It's most commonly a Yoast plugin that causes this error. Your changes will still have taken place within the rest of the database.

2: Erroneous data format for unserializing 'ActionScheduler_IntervalSchedule' in /var/www/html/example.org/DP-Search-Replace-DB/srdb.class.php on line 833

This is usually caused by a plugin storing classes as a serialised string which other PHP classes can't then access. It is not possible to unserialise this data because the PHP can't access this class. P.S. It's most commonly a Yoast plugin that causes this error. Your changes will still have taken place within the rest of the database.

2: Erroneous data format for unserializing 'ActionScheduler_IntervalSchedule' in /var/www/html/example.org/DP-Search-Replace-DB/srdb.class.php on line 833

This is usually caused by a plugin storing classes as a serialised string which other PHP classes can't then access. It is not possible to unserialise this data because the PHP can't access this class. P.S. It's most commonly a Yoast plugin that causes this error. Your changes will still have taken place within the rest of the database.

2: Erroneous data format for unserializing 'ActionScheduler_IntervalSchedule' in /var/www/html/example.org/DP-Search-Replace-DB/srdb.class.php on line 833

This is usually caused by a plugin storing classes as a serialised string which other PHP classes can't then access. It is not possible to unserialise this data because the PHP can't access this class. P.S. It's most commonly a Yoast plugin that causes this error. Your changes will still have taken place within the rest of the database.

The table "tclrx_7_cleantalk_sfw" has no primary key. Changes will have to be made manually.

2: Erroneous data format for unserializing 'ActionScheduler_NullSchedule' in /var/www/html/example.org/DP-Search-Replace-DB/srdb.class.php on line 833

2: Erroneous data format for unserializing 'ActionScheduler_SimpleSchedule' in /var/www/html/example.org/DP-Search-Replace-DB/srdb.class.php on line 833

2: Erroneous data format for unserializing 'ActionScheduler_SimpleSchedule' in /var/www/html/example.org/DP-Search-Replace-DB/srdb.class.php on line 833

2: Erroneous data format for unserializing 'ActionScheduler_NullSchedule' in /var/www/html/example.org/DP-Search-Replace-DB/srdb.class.php on line 833

2: Erroneous data format for unserializing 'ActionScheduler_NullSchedule' in /var/www/html/example.org/DP-Search-Replace-DB/srdb.class.php on line 833

2: Erroneous data format for unserializing 'ActionScheduler_NullSchedule' in /var/www/html/example.org/DP-Search-Replace-DB/srdb.class.php on line 833

2: Erroneous data format for unserializing 'ActionScheduler_SimpleSchedule' in /var/www/html/example.org/DP-Search-Replace-DB/srdb.class.php on line 833

2: Erroneous data format for unserializing 'ActionScheduler_SimpleSchedule' in /var/www/html/example.org/DP-Search-Replace-DB/srdb.class.php on line 833

2: Erroneous data format for unserializing 'ActionScheduler_SimpleSchedule' in /var/www/html/example.org/DP-Search-Replace-DB/srdb.class.php on line 833

The table "tclrx_cleantalk_sfw" has no primary key. Changes will have to be made manually.

syntax error, unexpected '\' (T_NS_SEPARATOR), expecting '{'

2: Erroneous data format for unserializing 'FS_Plugin' in /var/www/html/example.org/DP-Search-Replace-DB/srdb.class.php on line 833

2: Erroneous data format for unserializing 'WP_User' in /var/www/html/example.org/DP-Search-Replace-DB/srdb.class.php on line 833

When Search-Replace-DB is executed (not dry-run), I get the problem described above: broken theme, possibly other non-visual errors.

So, at this poitn I install WP-Cli and ran the following multisite compatible migration script that that I found here:

# Bash script: Search/replace production to development url (multisite compatible)
#!/bin/bash
if $(wp --url=example.org core is-installed --network); then
    wp search-replace --url=example.org 'example.org' 'localhost.example.org' --recurse-objects --network --skip-columns=guid --skip-tables=wp_users
else
    wp search-replace 'example.org' 'example.org' --recurse-objects --skip-columns=guid --skip-tables=wp_users
fi

It excutes successfully, but generates the following errors:

Warning: Skipping an uninitialized class "Stripe\ApplePayDomain", replacements might not be complete.
Warning: Skipping an uninitialized class "FS_Plugin", replacements might not be complete.
Warning: Skipping an uninitialized class "FS_Plugin", replacements might not be complete.
+------------------------+-----------------------+--------------+------+
| Table                  | Column                | Replacements | Type |
+------------------------+-----------------------+--------------+------+
| wp_2_commentmeta    | meta_key              | 0            | SQL  |
| wp_2_commentmeta    | meta_value            | 0            | SQL  |
| wp_2_comments       | comment_author        | 0            | SQL  |
| wp_2_comments       | comment_author_email  | 0            | SQL  |
| wp_2_comments       | comment_author_url    | 0            | SQL  |
| wp_2_comments       | comment_author_IP     | 0            | SQL  |
| wp_2_comments       | comment_content       | 0            | SQL  |
| wp_2_comments       | comment_approved      | 0            | SQL  |
| wp_2_comments       | comment_agent         | 0            | SQL  |
| wp_2_comments       | comment_type          | 0            | SQL  |
| wp_2_links          | link_url              | 0            | SQL  |
| wp_2_links          | link_name             | 0            | SQL  |
| wp_2_links          | link_image            | 0            | SQL  |
| wp_2_links          | link_target           | 0            | SQL  |
| wp_2_links          | link_description      | 0            | SQL  |
| wp_2_links          | link_visible          | 0            | SQL  |
| wp_2_links          | link_rel              | 0            | SQL  |
| wp_2_links          | link_notes            | 0            | SQL  |
| wp_2_links          | link_rss              | 0            | SQL  |
| wp_2_options        | option_name           | 0            | SQL  |
| wp_2_options        | option_value          | 48           | PHP  |
| wp_2_options        | autoload              | 0            | SQL  |
| wp_2_postmeta       | meta_key              | 0            | SQL  |
| wp_2_postmeta       | meta_value            | 2            | PHP  |
| wp_2_posts          | post_content          | 889          | SQL  |
| wp_2_posts          | post_title            | 0            | SQL  |
| wp_2_posts          | post_excerpt          | 0            | SQL  |
| wp_2_posts          | post_status           | 0            | SQL  |
| wp_2_posts          | comment_status        | 0            | SQL  |
| wp_2_posts          | ping_status           | 0            | SQL  |
| wp_2_posts          | post_password         | 0            | SQL  |
| wp_2_posts          | post_name             | 0            | SQL  |
| wp_2_posts          | to_ping               | 0            | SQL  |
| wp_2_posts          | pinged                | 0            | SQL  |
| wp_2_posts          | post_content_filtered | 0            | PHP  |
| wp_2_posts          | post_type             | 0            | SQL  |
| wp_2_posts          | post_mime_type        | 0            | SQL  |
| wp_2_term_taxonomy  | taxonomy              | 0            | SQL  |
| wp_2_term_taxonomy  | description           | 0            | SQL  |
| wp_2_termmeta       | meta_key              | 0            | SQL  |
| wp_2_termmeta       | meta_value            | 0            | SQL  |
| wp_2_terms          | name                  | 0            | SQL  |
| wp_2_terms          | slug                  | 0            | SQL  |
| wp_7_commentmeta    | meta_key              | 0            | SQL  |
| wp_7_commentmeta    | meta_value            | 0            | PHP  |
| wp_7_comments       | comment_author        | 0            | SQL  |
| wp_7_comments       | comment_author_email  | 0            | SQL  |
| wp_7_comments       | comment_author_url    | 0            | SQL  |
| wp_7_comments       | comment_author_IP     | 0            | SQL  |
| wp_7_comments       | comment_content       | 0            | SQL  |
| wp_7_comments       | comment_approved      | 0            | SQL  |
| wp_7_comments       | comment_agent         | 0            | SQL  |
| wp_7_comments       | comment_type          | 0            | SQL  |
| wp_7_links          | link_url              | 0            | SQL  |
| wp_7_links          | link_name             | 0            | SQL  |
| wp_7_links          | link_image            | 0            | SQL  |
| wp_7_links          | link_target           | 0            | SQL  |
| wp_7_links          | link_description      | 0            | SQL  |
| wp_7_links          | link_visible          | 0            | SQL  |
| wp_7_links          | link_rel              | 0            | SQL  |
| wp_7_links          | link_notes            | 0            | SQL  |
| wp_7_links          | link_rss              | 0            | SQL  |
| wp_7_options        | option_name           | 0            | SQL  |
| wp_7_options        | option_value          | 13           | PHP  |
| wp_7_options        | autoload              | 0            | SQL  |
| wp_7_postmeta       | meta_key              | 0            | SQL  |
| wp_7_postmeta       | meta_value            | 91           | PHP  |
| wp_7_posts          | post_content          | 22           | SQL  |
| wp_7_posts          | post_title            | 0            | SQL  |
| wp_7_posts          | post_excerpt          | 0            | SQL  |
| wp_7_posts          | post_status           | 0            | SQL  |
| wp_7_posts          | comment_status        | 0            | SQL  |
| wp_7_posts          | ping_status           | 0            | SQL  |
| wp_7_posts          | post_password         | 0            | SQL  |
| wp_7_posts          | post_name             | 0            | SQL  |
| wp_7_posts          | to_ping               | 0            | SQL  |
| wp_7_posts          | pinged                | 0            | SQL  |
| wp_7_posts          | post_content_filtered | 0            | PHP  |
| wp_7_posts          | post_type             | 0            | SQL  |
| wp_7_posts          | post_mime_type        | 0            | SQL  |
| wp_7_term_taxonomy  | taxonomy              | 0            | SQL  |
| wp_7_term_taxonomy  | description           | 0            | SQL  |
| wp_7_termmeta       | meta_key              | 0            | SQL  |
| wp_7_termmeta       | meta_value            | 0            | SQL  |
| wp_7_terms          | name                  | 0            | SQL  |
| wp_7_terms          | slug                  | 0            | SQL  |
| wp_blogmeta         | meta_key              | 0            | SQL  |
| wp_blogmeta         | meta_value            | 0            | SQL  |
| wp_blogs            | domain                | 3            | SQL  |
| wp_blogs            | path                  | 0            | SQL  |
| wp_commentmeta      | meta_key              | 0            | SQL  |
| wp_commentmeta      | meta_value            | 24           | PHP  |
| wp_comments         | comment_author        | 0            | SQL  |
| wp_comments         | comment_author_email  | 0            | SQL  |
| wp_comments         | comment_author_url    | 0            | SQL  |
| wp_comments         | comment_author_IP     | 0            | SQL  |
| wp_comments         | comment_content       | 11           | SQL  |
| wp_comments         | comment_approved      | 0            | SQL  |
| wp_comments         | comment_agent         | 21           | SQL  |
| wp_comments         | comment_type          | 0            | SQL  |
| wp_links            | link_url              | 0            | SQL  |
| wp_links            | link_name             | 0            | SQL  |
| wp_links            | link_image            | 0            | SQL  |
| wp_links            | link_target           | 0            | SQL  |
| wp_links            | link_description      | 0            | SQL  |
| wp_links            | link_visible          | 0            | SQL  |
| wp_links            | link_rel              | 0            | SQL  |
| wp_links            | link_notes            | 0            | SQL  |
| wp_links            | link_rss              | 0            | SQL  |
| wp_options          | option_name           | 0            | SQL  |
| wp_options          | option_value          | 33           | PHP  |
| wp_options          | autoload              | 0            | SQL  |
| wp_postmeta         | meta_key              | 0            | SQL  |
| wp_postmeta         | meta_value            | 31           | PHP  |
| wp_posts            | post_content          | 488          | SQL  |
| wp_posts            | post_title            | 0            | SQL  |
| wp_posts            | post_excerpt          | 0            | SQL  |
| wp_posts            | post_status           | 0            | SQL  |
| wp_posts            | comment_status        | 0            | SQL  |
| wp_posts            | ping_status           | 0            | SQL  |
| wp_posts            | post_password         | 0            | SQL  |
| wp_posts            | post_name             | 0            | SQL  |
| wp_posts            | to_ping               | 0            | SQL  |
| wp_posts            | pinged                | 0            | SQL  |
| wp_posts            | post_content_filtered | 0            | PHP  |
| wp_posts            | post_type             | 0            | SQL  |
| wp_posts            | post_mime_type        | 0            | SQL  |
| wp_registration_log | email                 | 6            | SQL  |
| wp_registration_log | IP                    | 0            | SQL  |
| wp_signups          | domain                | 0            | SQL  |
| wp_signups          | path                  | 0            | SQL  |
| wp_signups          | title                 | 0            | SQL  |
| wp_signups          | user_login            | 0            | SQL  |
| wp_signups          | user_email            | 2            | SQL  |
| wp_signups          | activation_key        | 0            | SQL  |
| wp_signups          | meta                  | 0            | PHP  |
| wp_site             | domain                | 1            | SQL  |
| wp_site             | path                  | 0            | SQL  |
| wp_sitemeta         | meta_key              | 0            | SQL  |
| wp_sitemeta         | meta_value            | 10           | PHP  |
| wp_term_taxonomy    | taxonomy              | 0            | SQL  |
| wp_term_taxonomy    | description           | 0            | SQL  |
| wp_termmeta         | meta_key              | 0            | SQL  |
| wp_termmeta         | meta_value            | 0            | SQL  |
| wp_terms            | name                  | 0            | SQL  |
| wp_terms            | slug                  | 0            | SQL  |
| wp_usermeta         | meta_key              | 0            | SQL  |
| wp_usermeta         | meta_value            | 9            | PHP  |
| wp_users            | user_login            | 0            | SQL  |
| wp_users            | user_nicename         | 0            | SQL  |
| wp_users            | user_email            | 5            | SQL  |
| wp_users            | user_url              | 0            | SQL  |
| wp_users            | user_activation_key   | 0            | SQL  |
| wp_users            | display_name          | 0            | SQL  |
+------------------------+-----------------------+--------------+------+
Success: Made 1709 replacements.

These two quasi-different methods of db migration, are causing the exact same errors, so I am clearly missing something.

Any Tips?

3

Accepting a little egg on my face. Dumb-dumb error.

The above migration was 100% successful despite the error messages from WP-Cli and Search Replace DB. The reason that my theme appeared broken and other weird issues.. I forgot to re-enable my plugins folder that had been re-named "plugins_temp_disabled", while troubleshooting a different problem. Good night of sleep and I caught the problem. I highly recommend WP-Cli for migrating multsite or single site wordpress because some plugins can be buggy at key moments of your migration process. Old skool...

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.