{"id":98791,"date":"2019-03-25T08:16:36","date_gmt":"2019-03-25T08:16:36","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/wordpress-for-com\/"},"modified":"2026-04-27T00:11:47","modified_gmt":"2026-04-27T00:11:47","slug":"wp-migration-for-onamaecom","status":"publish","type":"plugin","link":"https:\/\/test.wordpress.org\/plugins\/wp-migration-for-onamaecom\/","author":15355067,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_crdt_document":"","version":"2.1.3","stable_tag":"2.1.3","tested":"6.9.4","requires":"6.2","requires_php":"7.4","requires_plugins":null,"header_name":"\u304b\u3093\u305f\u3093\u304a\u5f15\u8d8a\u3057 for \u304a\u540d\u524d.com","header_author":"GMO Internet, Inc.","header_description":"\u304a\u540d\u524d.com \u30ec\u30f3\u30bf\u30eb\u30b5\u30fc\u30d0\u30fc\u306e\u300cWordPress\u304b\u3093\u305f\u3093\u304a\u5f15\u8d8a\u3057\u300d\u3092\u3054\u5229\u7528\u3044\u305f\u3060\u304f\u305f\u3081\u306e\u30d7\u30e9\u30b0\u30a4\u30f3\u3067\u3059\u3002","assets_banners_color":"d54948","last_updated":"2026-04-27 00:11:47","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/wordpress.org\/plugins\/wp-migration-for-onamaecom\/","header_author_uri":"https:\/\/www.onamae-server.com\/","rating":0,"author_block_rating":0,"active_installs":200,"downloads":45407,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.0":{"tag":"1.0.0","author":"onamaecom","date":"2019-03-28 08:32:45"},"1.0.1":{"tag":"1.0.1","author":"onamaecom","date":"2019-03-28 08:36:21"},"1.0.2":{"tag":"1.0.2","author":"onamaecom","date":"2019-09-10 03:19:54"},"1.0.3":{"tag":"1.0.3","author":"onamaecom","date":"2019-09-11 04:58:56"},"1.0.4":{"tag":"1.0.4","author":"onamaecom","date":"2019-09-13 07:55:51"},"1.0.5":{"tag":"1.0.5","author":"onamaecom","date":"2020-10-27 04:13:33"},"1.0.6":{"tag":"1.0.6","author":"onamaecom","date":"2020-10-27 04:13:33"},"1.0.7":{"tag":"1.0.7","author":"onamaecom","date":"2022-05-18 03:30:55"},"1.0.8":{"tag":"1.0.8","author":"onamaecom","date":"2022-09-01 03:43:31"},"1.0.9":{"tag":"1.0.9","author":"onamaecom","date":"2023-03-07 03:22:17"},"1.1.0":{"tag":"1.1.0","author":"onamaecom","date":"2025-11-26 00:16:15"},"2.0.0":{"tag":"2.0.0","author":"onamaecom","date":"2026-03-11 08:15:13"},"2.0.1":{"tag":"2.0.1","author":"onamaecom","date":"2026-04-10 07:37:16"},"2.0.2":{"tag":"2.0.2","author":"onamaecom","date":"2026-04-17 01:43:00"},"2.0.3":{"tag":"2.0.3","author":"onamaecom","date":"2026-04-23 04:38:03"},"2.1.0":{"tag":"2.1.0","author":"onamaecom","date":"2026-04-23 07:17:02"},"2.1.2":{"tag":"2.1.2","author":"onamaecom","date":"2026-04-24 05:16:42"},"2.1.3":{"tag":"2.1.3","author":"onamaecom","date":"2026-04-27 00:11:47"}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.jpg":{"filename":"icon-128x128.jpg","revision":3406528,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.jpg":{"filename":"icon-256x256.jpg","revision":3406528,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.jpg":{"filename":"banner-1544x500.jpg","revision":3406528,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.jpg":{"filename":"banner-772x250.jpg","revision":3406528,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.0","1.0.1","1.0.2","1.0.3","1.0.4","1.0.5","1.0.6","1.0.7","1.0.8","1.0.9","1.1.0","2.0.0","2.0.1","2.0.2","2.0.3","2.1.0","2.1.2","2.1.3"],"block_files":[],"assets_screenshots":[],"screenshots":[],"jetpack_post_was_ever_published":false},"plugin_section":[],"plugin_tags":[151,4155,169496,152],"plugin_category":[59],"plugin_contributors":[],"plugin_business_model":[],"class_list":["post-98791","plugin","type-plugin","status-publish","hentry","plugin_tags-backup","plugin_tags-migration","plugin_tags-onamae","plugin_tags-restore","plugin_category-utilities-and-tools","plugin_committers-onamaecom"],"banners":{"banner":"https:\/\/ps.w.org\/wp-migration-for-onamaecom\/assets\/banner-772x250.jpg?rev=3406528","banner_2x":"https:\/\/ps.w.org\/wp-migration-for-onamaecom\/assets\/banner-1544x500.jpg?rev=3406528","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/wp-migration-for-onamaecom\/assets\/icon-128x128.jpg?rev=3406528","icon_2x":"https:\/\/ps.w.org\/wp-migration-for-onamaecom\/assets\/icon-256x256.jpg?rev=3406528","generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p>This plugin enables the \"Easy Migration\" feature for WordPress on Onamae.com Rental Server.<\/p>\n\n<p>It allows you to migrate a WordPress site running on another server to your Onamae.com Rental Server.<\/p>\n\n<h4>Target Users<\/h4>\n\n<p>This plugin is available free of charge for Onamae.com Rental Server subscribers.<\/p>\n\n<p>To use the plugin, you need to enter the source WordPress site information from the Onamae.com Rental Server control panel.<\/p>\n\n<p>Please note that this plugin will not function on servers other than Onamae.com Rental Server.<\/p>\n\n<h4>Support<\/h4>\n\n<p>For usage instructions, please refer to the Onamae.com Rental Server user guide.<\/p>\n\n<p>Onamae.com Rental Server Guide: https:\/\/www.onamae-server.com\/guide\/rs\/<\/p>\n\n<!--section=installation-->\n<p>This plugin requires an active Onamae.com Rental Server subscription.<\/p>\n\n<p>The plugin is automatically installed when you initiate the \"Easy Migration\" process from the Onamae.com Rental Server control panel.<\/p>\n\n<!--section=faq-->\n<p>For frequently asked questions, please refer to the Onamae.com Help Center.<\/p>\n\n<p>Onamae.com Help Center: https:\/\/www.onamae.com\/help\/<\/p>\n\n<!--section=changelog-->\n<h4>2.1.3<\/h4>\n\n<ul>\n<li>Fix: AbstractAction::save_job_info() now flushes the WordPress object cache before calling update_option(). The 2.1.1 fix only flushed on SQL import completion in RestoreDatabaseTask, but SQL import is split into BATCH_SIZE=100-statement chunks across multiple HTTP requests (needs_continue) to avoid PHP max_execution_time. This affects any restore where the source site's SQL dump exceeds ~100 statements \u2014 a standard WP install with 15-30 tables (DROP + CREATE + INSERT each) plus chunked INSERTs for large tables typically exceeds this, so the bug can fire even on a first restore if the source is sized normally. Symptom: wp_options gets DROPed\/CREATEd\/INSERTed during a chunk, save_job_info is called at the chunk boundary, update_option reads the stale cached value as $old_value, $wpdb-&gt;update() returns 0 rows, add_option fallback is also skipped (cache says value exists), so restore_info is never persisted. The next GET \/restore\/{id} returns 404 Not Found. Flushing before each save_job_info call fixes this and also guards against future tasks that touch the DB (Issue #49).<\/li>\n<\/ul>\n\n<h4>2.1.2<\/h4>\n\n<ul>\n<li>Fix: Backup now excludes <code>wp-content\/object-cache.php<\/code>, <code>wp-content\/advanced-cache.php<\/code> (WordPress drop-ins), and <code>wp-content\/mu-plugins\/<\/code> from archives. Previously these were copied from source and overwrote destination-specific files \u2014 the source provider's Redis\/Memcached drop-in config would clash with the destination's cache plugin config (PHP fatal -&gt; 500), and source-provider-specific mu-plugins (WAF, CDN, security) would overwrite destination-provider mu-plugins that the destination hosting ships (Issue #42).<\/li>\n<li>Fix: BackupDatabaseTask now emits mysqldump-compatible session setup at the head of the dump file (SET NAMES utf8mb4, TIME_ZONE='+00:00', FOREIGN_KEY_CHECKS=0, UNIQUE_CHECKS=0, SQL_MODE='NO_AUTO_VALUE_ON_ZERO,ALLOW_INVALID_DATES', SQL_NOTES=0) and restores @OLD_* variables in the footer. This fixes restore failures when migrating from MySQL 5.7 to 8.0, where stricter default SQL_MODE rejected <code>0000-00-00<\/code> dates (post_date_gmt on legacy sites) and AUTO_INCREMENT=0 rows, and where an implicit TIME_ZONE mismatch shifted datetime values between source and destination (Issue #43).<\/li>\n<\/ul>\n\n<h4>2.1.1<\/h4>\n\n<ul>\n<li>Fix: RestoreDatabaseTask now flushes the WordPress object cache after completing SQL import. Without this, update_option() on freshly restored wp_options sees stale cached values as $old_value and skips the add_option() fallback, leaving $wpdb-&gt;update() returning 0 rows. As a result, RestoreAction::save_job_info() failed to persist restore_info to the actual DB, causing GET \/restore\/{id} to return 404 right after restore completion (Issue #36).<\/li>\n<\/ul>\n\n<h4>2.1.0<\/h4>\n\n<ul>\n<li>Fix: restore download fully downloads multi-GB archives by looping Range-chunk reads within a single request. The loop exits when remaining time is below DOWNLOAD_TIMEOUT so it never starts a 30s wp_remote_get with only a few seconds of task budget left.<\/li>\n<li>Fix: backup excluded the plugin's own work directories (uploads\/{brand}-backup, uploads\/{brand}-restore) only via a regex that did not match brand names containing underscores (e.g., onamae_mig) \u2014 rewrote to use Config::get_brand() so backups no longer pull in their own archives (snowball growth).<\/li>\n<li>Fix: handle_backup \/ handle_restore now return an error if deleting a stale FAILED job fails, instead of silently proceeding to start() with leftover state.<\/li>\n<li>API change: POST \/backup and POST \/restore now accept an optional backup_id \/ restore_id from the caller. The plugin reuses an existing job if one exists, or starts a new job with the supplied id otherwise. Omitting the id keeps the previous behavior (auto-generated id). This lets the batch layer tie a job to wordpress_migrations.backup_key so retries resume the same work directory instead of creating a new one each time.<\/li>\n<li>Security: sanitize_job_id now rejects invalid IDs (returning empty string) instead of silently stripping disallowed characters, to prevent accidental ID collisions (e.g. <code>a\/b<\/code> and <code>ab<\/code> both reducing to the same job) and path traversal via externally supplied ids.<\/li>\n<li>Cleanup: remove the unused <code>continue<\/code> field from RestoreDownloadTask::download_chunk() now that the loop is driven by the task's remaining time.<\/li>\n<\/ul>\n\n<h4>2.0.2<\/h4>\n\n<ul>\n<li>Remove flush_rewrite_rules() from RestoreFinishTask (delegate to batch-side wp-cli).<\/li>\n<\/ul>\n\n<h4>2.0.1<\/h4>\n\n<ul>\n<li>Improve error handling: distinguish download_not_found, extract_failed, db_import_failed error codes.<\/li>\n<li>Add SSL certificate verification fallback for backup file download.<\/li>\n<\/ul>\n\n<h4>2.0.0<\/h4>\n\n<ul>\n<li>Security improvements and codebase overhaul.<\/li>\n<\/ul>\n\n<h4>1.1.0<\/h4>\n\n<ul>\n<li>Changed Japanese plugin name.<\/li>\n<\/ul>\n\n<h4>1.0.9<\/h4>\n\n<ul>\n<li>Change file installation function.<\/li>\n<\/ul>\n\n<h4>1.0.8<\/h4>\n\n<ul>\n<li>Change author.<\/li>\n<\/ul>\n\n<h4>1.0.7<\/h4>\n\n<ul>\n<li>Supports php8.<\/li>\n<\/ul>\n\n<h4>1.0.6<\/h4>\n\n<ul>\n<li>Added file installation function.<\/li>\n<\/ul>\n\n<h4>1.0.5<\/h4>\n\n<ul>\n<li>Bug fix.<\/li>\n<\/ul>\n\n<h4>1.0.4<\/h4>\n\n<ul>\n<li>Bug fix.<\/li>\n<\/ul>\n\n<h4>1.0.3<\/h4>\n\n<ul>\n<li>Bug fix.<\/li>\n<\/ul>\n\n<h4>1.0.2<\/h4>\n\n<ul>\n<li>Fix restore download logic.<\/li>\n<\/ul>\n\n<h4>1.0.1<\/h4>\n\n<ul>\n<li>Bug fix.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release.<\/li>\n<\/ul>","raw_excerpt":"A WordPress migration plugin for Onamae.com Rental Server.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/test.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/98791","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/test.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/test.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/test.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=98791"}],"author":[{"embeddable":true,"href":"https:\/\/test.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/onamaecom"}],"wp:attachment":[{"href":"https:\/\/test.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=98791"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/test.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=98791"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/test.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=98791"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/test.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=98791"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/test.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=98791"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/test.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=98791"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}