wp-migrate — community wp-migrate, wp-migrate.sh, community, ide skills

v1.0.0

About this Skill

Ideal for WordPress Management Agents requiring seamless site migrations via SSH and archive imports. WordPress site migration and deployment using wp-migrate.sh. Use when migrating WordPress sites, syncing databases, managing backups, testing migrations, debugging migration issues, or working with Wo

BWBama85 BWBama85
[0]
[0]
Updated: 3/12/2026

Killer-Skills Review

Decision support comes first. Repository text comes second.

Reference-Only Page Review Score: 7/11

This page remains useful for operators, but Killer-Skills treats it as reference material instead of a primary organic landing page.

Original recommendation layer Concrete use-case guidance Explicit limitations and caution Locale and body language aligned
Review Score
7/11
Quality Score
42
Canonical Locale
en
Detected Body Locale
en

Ideal for WordPress Management Agents requiring seamless site migrations via SSH and archive imports. WordPress site migration and deployment using wp-migrate.sh. Use when migrating WordPress sites, syncing databases, managing backups, testing migrations, debugging migration issues, or working with Wo

Core Value

Empowers agents to automate WordPress migrations using SSH push and archive import modes, handling database updates, URL replacements, and wp-content syncing via wp-migrate.sh, supporting formats like Duplicator, Jetpack Backup, and Solid Backups.

Ideal Agent Persona

Ideal for WordPress Management Agents requiring seamless site migrations via SSH and archive imports.

Capabilities Granted for wp-migrate

Migrating WordPress sites between servers via SSH
Importing WordPress backup archives on destination servers
Automating database updates and URL replacements during migration

! Prerequisites & Limits

  • Requires SSH access for push mode
  • Limited to WordPress migrations only
  • Dependent on wp-migrate.sh tool

Why this page is reference-only

  • - The underlying skill quality score is below the review floor.

Source Boundary

The section below is imported from the upstream repository and should be treated as secondary evidence. Use the Killer-Skills review above as the primary layer for fit, risk, and installation decisions.

After The Review

Decide The Next Action Before You Keep Reading Repository Material

Killer-Skills should not stop at opening repository instructions. It should help you decide whether to install this skill, when to cross-check against trusted collections, and when to move into workflow rollout.

Labs Demo

Browser Sandbox Environment

⚡️ Ready to unleash?

Experience this Agent in a zero-setup browser environment powered by WebContainers. No installation required.

Boot Container Sandbox

FAQ & Installation Steps

These questions and steps mirror the structured data on this page for better search understanding.

? Frequently Asked Questions

What is wp-migrate?

Ideal for WordPress Management Agents requiring seamless site migrations via SSH and archive imports. WordPress site migration and deployment using wp-migrate.sh. Use when migrating WordPress sites, syncing databases, managing backups, testing migrations, debugging migration issues, or working with Wo

How do I install wp-migrate?

Run the command: npx killer-skills add BWBama85/wp-migrate.sh. It works with Cursor, Windsurf, VS Code, Claude Code, and 19+ other IDEs.

What are the use cases for wp-migrate?

Key use cases include: Migrating WordPress sites between servers via SSH, Importing WordPress backup archives on destination servers, Automating database updates and URL replacements during migration.

Which IDEs are compatible with wp-migrate?

This skill is compatible with Cursor, Windsurf, VS Code, Trae, Claude Code, OpenClaw, Aider, Codex, OpenCode, Goose, Cline, Roo Code, Kiro, Augment Code, Continue, GitHub Copilot, Sourcegraph Cody, and Amazon Q Developer. Use the Killer-Skills CLI for universal one-command installation.

Are there any limitations for wp-migrate?

Requires SSH access for push mode. Limited to WordPress migrations only. Dependent on wp-migrate.sh tool.

How To Install

  1. 1. Open your terminal

    Open the terminal or command line in your project directory.

  2. 2. Run the install command

    Run: npx killer-skills add BWBama85/wp-migrate.sh. The CLI will automatically detect your IDE or AI agent and configure the skill.

  3. 3. Start using the skill

    The skill is now active. Your AI agent can use wp-migrate immediately in the current project.

! Reference-Only Mode

This page remains useful for installation and reference, but Killer-Skills no longer treats it as a primary indexable landing page. Read the review above before relying on the upstream repository instructions.

Upstream Repository Material

The section below is imported from the upstream repository and should be treated as secondary evidence. Use the Killer-Skills review above as the primary layer for fit, risk, and installation decisions.

Upstream Source

wp-migrate

Install wp-migrate, an AI agent skill for AI agent workflows and automation. Review the use cases, limitations, and setup path before rollout.

SKILL.md
Readonly
Upstream Repository Material
The section below is imported from the upstream repository and should be treated as secondary evidence. Use the Killer-Skills review above as the primary layer for fit, risk, and installation decisions.
Supporting Evidence

WordPress Migration Skill

This skill provides expertise for working with the wp-migrate.sh WordPress migration tool.

Project Overview

wp-migrate.sh is a comprehensive WordPress migration tool that operates in two modes:

  1. Push Mode: Migrates WordPress sites between servers via SSH (source → destination)
  2. Archive Mode: Imports WordPress backup archives (Duplicator, Jetpack Backup, Solid Backups) on destination server

Current Version: Check the latest release

bash
1git describe --tags --abbrev=0 # Get current version from git

Latest Release: See GitHub Releases

Repository: BWBama85/wp-migrate.sh

Main Branch: main

Core Capabilities

Migration Modes

Push Mode

  • Transfers wp-content and database from source to destination via SSH
  • Enables maintenance mode on both servers during migration
  • Creates timestamped backups before overwriting
  • Performs URL search-replace to align destination domain
  • Excludes object-cache.php to preserve destination caching infrastructure
  • Supports StellarSites managed hosting compatibility (--stellarsites flag)

Archive Mode

  • Auto-detects archive format (Duplicator, Jetpack Backup, Solid Backups)
  • Extracts archives to temporary directory
  • Validates disk space (requires 3x archive size)
  • Creates backups of destination database and wp-content before import
  • Automatically aligns table prefixes if different from wp-config.php
  • Performs URL search-replace to align with destination URLs
  • Provides rollback instructions with exact commands

Key Features

  • Migration preview with confirmation: Pre-migration summary with detailed stats and confirmation prompt (v2.6.0)
  • Rollback command: Automatic restoration from backups with --rollback flag (v2.6.0)
  • Progress indicators: Real-time progress bars for long-running operations when pv is installed (v2.6.0)
  • Dry-run mode: Preview all operations without making changes (--dry-run)
  • Verbose logging: Show detailed diagnostic information (--verbose)
  • Trace mode: Show every command before execution (--trace)
  • Plugin preservation: Preserve destination plugins/themes not in source (--preserve-dest-plugins)
  • StellarSites mode: Managed hosting compatibility with mu-plugins exclusion (--stellarsites)
  • Skip search-replace: Fast migrations that only update home/siteurl options (--no-search-replace)
  • Automation support: Skip confirmation prompts with --yes flag for CI/CD (v2.6.0)
  • Quiet mode: Suppress progress indicators for non-interactive scripts with --quiet (v2.6.0)

Common Tasks

Running Migrations

Push Mode:

bash
1./wp-migrate.sh --dest-host user@dest.example.com --dest-root /var/www/site

Archive Mode:

bash
1./wp-migrate.sh --archive /path/to/backup.zip 2./wp-migrate.sh --archive /path/to/backup.tar.gz --archive-type jetpack

Dry Run:

bash
1./wp-migrate.sh --dest-host user@dest --dest-root /var/www/site --dry-run --verbose

Rollback (v2.6.0):

bash
1./wp-migrate.sh --rollback # Auto-detects latest backups 2./wp-migrate.sh --rollback --rollback-backup /path/to/specific/backup # Specific backup 3./wp-migrate.sh --rollback --yes # Skip confirmation for automation

Automation-Friendly (v2.6.0):

bash
1./wp-migrate.sh --archive /path/to/backup.zip --yes --quiet # CI/CD: skip prompts, no progress bars

Testing

Run all tests:

bash
1make test

Run specific test:

bash
1./test-wp-migrate.sh

ShellCheck validation:

bash
1shellcheck wp-migrate.sh

Development Workflow

Code Structure (v2+)

The project uses a modular source structure:

src/
├── header.sh           # Shebang, defaults, variable declarations
├── lib/
│   ├── core.sh         # Core utilities (log, err, validate_url)
│   ├── functions.sh    # All other functions
│   └── adapters/       # Archive format adapters
│       ├── README.md
│       ├── duplicator.sh
│       ├── jetpack.sh
│       └── solidbackups.sh
└── main.sh             # Argument parsing and main execution

IMPORTANT: Modifications should be made in src/ files, NOT in wp-migrate.sh directly.

Build Process

After modifying source files:

bash
1make build

This will:

  1. Run shellcheck on concatenated source
  2. Concatenate src/ files into dist/wp-migrate.sh
  3. Copy to ./wp-migrate.sh (repo root)
  4. Generate SHA256 checksum

Pre-commit Hook

A pre-commit hook prevents committing source changes without rebuilding:

bash
1ln -s ../../.githooks/pre-commit .git/hooks/pre-commit

Git Workflow

  1. Branching: Create from main using descriptive names:

    • feature/<slug> for enhancements
    • fix/<slug> for bug fixes
    • docs/<slug> for documentation
    • chore/<slug> for maintenance
  2. Commits: Use .gitmessage template format:

    type: short imperative summary
    
    Longer explanation if needed
    

    Types: feat, fix, docs, chore, refactor, test

  3. Changelog: Update CHANGELOG.md under [Unreleased] section with every feature or fix

  4. Pull Requests:

    • Use .github/pull_request_template.md checklist
    • Include comprehensive summary based on ALL commits (not just latest)
    • Include test plan with verification steps
    • Reference related issues
  5. Merging: Keep main release-ready with git merge --no-ff or squash after review

  6. Releases: Tag with semantic versioning (e.g., git tag v2.7.0)

Creating Pull Requests

When creating PRs, ensure:

  • Review ALL commits in the branch (use git log main..HEAD and git diff main...HEAD)
  • Summary covers complete scope of changes
  • Test plan verifies all functionality
  • CHANGELOG.md is updated
  • ShellCheck passes
  • Tests pass (make test)

Common Files to Check

Troubleshooting Guide

Common Issues

Permission Errors on Managed Hosts (StellarSites)

  • Symptom: "Permission denied" when syncing wp-content
  • Solution: Use --stellarsites flag to exclude protected mu-plugins
  • Details: Managed hosts protect certain mu-plugins directories (e.g., stellarsites-cloud)

Database Import Fails

  • Check table prefix alignment (script auto-detects and updates wp-config.php)
  • Verify sufficient disk space (3x archive size for archive mode)
  • Check MySQL max_allowed_packet size for large imports

URL Search-Replace Issues

  • Use --verbose to see detected URLs
  • Override with --dest-home-url or --dest-site-url if detection fails
  • Use --no-search-replace for faster migrations that only need home/siteurl updated

Archive Detection Fails

  • Use explicit --archive-type to specify format (duplicator, jetpack, solidbackups)
  • Verify archive structure matches adapter expectations (see src/lib/adapters/)
  • Check detailed validation errors with --verbose (v2.6.0+)

Non-Interactive Context Failures (v2.6.0)

  • Symptom: Script exits with "This script requires a TTY for confirmation prompts"
  • Solution: Add --yes flag when running in CI/CD, cron, or pipeline contexts
  • Details: Migration preview and rollback require confirmation by default; use --yes to bypass

Rollback Issues (v2.6.0)

  • Auto-detection looks for latest timestamped backups in db-backups/ and wp-content.backup-*
  • If backups aren't found, use --rollback-backup /path/to/backup to specify explicitly
  • Rollback only works for archive mode migrations (restores from local backups)

SSH Connection Issues

  • Add custom SSH options with --ssh-opt (can be repeated)
  • Examples: --ssh-opt 'Port=2222' or --ssh-opt 'ProxyJump=bastion'

ShellCheck Errors

  • Install ShellCheck: brew install shellcheck (macOS) or see https://www.shellcheck.net/
  • Run: shellcheck wp-migrate.sh
  • All code must be ShellCheck-clean before merging

Debugging Commands

Show verbose migration preview:

bash
1./wp-migrate.sh --dest-host user@dest --dest-root /var/www/site --dry-run --verbose

Show every command (trace mode):

bash
1./wp-migrate.sh --dest-host user@dest --dest-root /var/www/site --dry-run --trace

Check archive structure:

bash
1unzip -l /path/to/backup.zip | head -50 2tar -tzf /path/to/backup.tar.gz | head -50

Verify wp-cli on destination:

bash
1ssh user@dest 'cd /var/www/site && wp core version'

Archive Adapter System

The script uses an extensible adapter system for different backup formats.

Supported Formats

  1. Duplicator: ZIP archives with dup-installer/dup-database__*.sql structure
  2. Jetpack Backup: ZIP/TAR.GZ archives with sql/*.sql multi-file structure
  3. Solid Backups: ZIP archives with split SQL in wp-content/uploads/backupbuddy_temp/{ID}/

Adding New Adapters

See src/lib/adapters/README.md for contributor guide.

Each adapter must implement:

  • validate_<adapter>() - Check if file matches format
  • extract_<adapter>() - Extract archive to temp directory
  • detect_db_<adapter>() - Find database file(s)
  • detect_wp_content_<adapter>() - Find wp-content directory

Best Practices

When Assisting with Code Changes

  1. Always check if source files need modification (src/) not wp-migrate.sh directly
  2. Run make build after any source changes to regenerate wp-migrate.sh
  3. Run ShellCheck validation before committing
  4. Update CHANGELOG.md for all features and fixes
  5. Use TodoWrite to track multi-step tasks
  6. Create focused PRs addressing single concerns

When Testing Migrations

  1. Always start with dry-run to preview operations
  2. Use verbose mode for troubleshooting (--verbose or --trace)
  3. Verify backups before destructive operations
  4. Test rollback procedures in safe environments
  5. Check logs in logs/ directory after migrations

When Creating Releases

  1. Update CHANGELOG.md with version number and date
  2. Create git tag with semantic version (e.g., v2.7.0)
  3. Generate GitHub release with changelog excerpt
  4. Verify tests pass on clean checkout
  5. Update README if user-facing changes exist

Common Patterns

Searching Code

Use Grep tool for code searches:

pattern: "function_name"
output_mode: "content"
-n: true (show line numbers)

Reading Source Files

Use Read tool for file contents:

file_path: /Volumes/personal/codeprojects/bash/wp-migrate/src/lib/functions.sh

Editing Code

Use Edit tool for precise changes:

file_path: /Volumes/personal/codeprojects/bash/wp-migrate/src/lib/functions.sh
old_string: "exact match from file"
new_string: "replacement text"

Running Git Commands

bash
1git status 2git diff main...HEAD # See all changes in branch 3git log main..HEAD # See all commits in branch

Critical Reminders

  • NEVER edit wp-migrate.sh directly - edit files in src/ instead
  • ALWAYS run make build after source changes
  • ALWAYS update CHANGELOG.md for features and fixes
  • ALWAYS run ShellCheck before committing (make test)
  • ALWAYS commit both source AND built files together
  • ALWAYS review ALL commits when creating PRs (not just latest commit)
  • ALWAYS use TodoWrite for multi-step tasks to track progress

Related Skills

Looking for an alternative to wp-migrate or another community skill for your workflow? Explore these related open-source skills.

View All

openclaw-release-maintainer

Logo of openclaw
openclaw

Your own personal AI assistant. Any OS. Any Platform. The lobster way. 🦞

333.8k
0
AI

widget-generator

Logo of f
f

Generate customizable widget plugins for the prompts.chat feed system

149.6k
0
AI

flags

Logo of vercel
vercel

The React Framework

138.4k
0
Browser

pr-review

Logo of pytorch
pytorch

Tensors and Dynamic neural networks in Python with strong GPU acceleration

98.6k
0
Developer