Restaurar un sitio de WordPress desde un Backup

The restore command performs a complete restoration of a WordPress site from a WP Staging backup. It extracts files and imports the database in one operation, making it ideal for migrating sites or recovering from disasters.

Qué obtendrás

Tras la restauración:

  • Instalación completa de WordPress con todos los archivos restaurados
  • Base de datos importada y configurada
  • Sitio listo para usar en la ubicación de destino

Requisitos previos

El comando restore requiere:

  • Una instalación de WordPress existente en la ruta de destino (con un wp-config.php válido)
  • Credenciales de base de datos (de wp-config.php o proporcionadas mediante indicadores)
  • Permisos de escritura en el directorio de destino

Tip: For setting up a fresh WordPress environment with Docker, use wpstaging add --from=backup.wpstg instead. See Create a Local Copy of WordPress Site.

Restauración básica

Restaura un sitio de WordPress en un directorio específico:

wpstaging restore --path=/var/www/html backup.wpstg

O, si ya estás en el directorio raíz de WordPress:

cd /var/www/html
wpstaging restore backup.wpstg

Restaurar desde URL remota

Restaura directamente desde un archivo de Backup remoto:

wpstaging restore --path=/var/www/html --from=https://example.com/backups/backup.wpstg

La CLI descarga el Backup, lo valida y lo restaura en una sola operación.

Restaurar en un sitio Docker

Para sitios gestionados por el entorno Docker de WP Staging CLI, puedes restaurar directamente usando el nombre de host:

wpstaging restore site.local backup.wpstg

Or with the --from flag:

wpstaging restore site.local --from=backup.wpstg
wpstaging restore site.local --from=https://example.com/backups/backup.wpstg

Requisitos:

  • El sitio ya debe existir (creado con wpstaging add site.local)
  • Las credenciales de base de datos se detectan automáticamente del archivo .env del sitio
  • No es necesario especificar --path ni indicadores de base de datos

Restaurar con base de datos externa

Reemplaza los ajustes de base de datos de wp-config.php para conectarte a un servidor de base de datos diferente:

wpstaging restore --path=/var/www/html \
  --db-host=db.example.com \
  --db-name=wordpress_db \
  --db-user=wp_user \
  --db-password=secret_password \
  backup.wpstg

Opciones de conexión a base de datos

Control total sobre los ajustes de conexión a base de datos:

FlagDescription
--db-hostDatabase host (e.g., localhost, db.example.com)
--db-nameDatabase name
--db-userDatabase username
--db-passwordDatabase password
--db-socketDatabase socket path
--db-charsetDatabase charset (e.g., utf8mb4)
--db-collateDatabase collation
--db-prefixTarget WordPress table prefix

Conexión a base de datos SSL/TLS

Para conexiones seguras a la base de datos:

wpstaging restore --path=/var/www/html \
  --db-host=secure-db.example.com \
  --db-ssl-ca-cert=/path/to/ca-cert.pem \
  --db-ssl-cert=/path/to/client-cert.pem \
  --db-ssl-key=/path/to/client-key.pem \
  backup.wpstg
FlagDescription
--db-ssl-ca-certPath to CA certificate file
--db-ssl-certPath to client certificate file
--db-ssl-keyPath to client key file
--db-ssl-modeSSL mode (skip-verify/preferred)

Opciones de sobreescritura

Controla qué se sobreescribe durante la restauración:

FlagDefaultDescription
--overwriteyesOverwrite target directory files
--overwrite-dbyesOverwrite database tables
--overwrite-wprootnoOverwrite WordPress root files

Ejemplo: conservar la base de datos existente:

wpstaging restore --path=/var/www/html --overwrite-db=no backup.wpstg

Ejemplo: también sobreescribir los archivos de núcleo de WordPress:

wpstaging restore --path=/var/www/html --overwrite-wproot=yes backup.wpstg

Filtrar qué restaurar

Usa los mismos indicadores --only-* y --skip-* que el comando extract:

Restaurar solo Plugins y Themes:

wpstaging restore --path=/var/www/html --only-plugins --only-themes backup.wpstg

Restaurar todo excepto uploads:

wpstaging restore --path=/var/www/html --skip-uploads backup.wpstg

Consulta Extraer archivos de Backup para ver la lista completa de indicadores de filtro.

Reanudar restauración interrumpida

Si la restauración de la base de datos fue interrumpida, puedes reanudarla desde el archivo SQL extraído:

wpstaging restore --path=/var/www/html \
  --skip-extract \
  --db-file=/path/to/extracted/database.sql \
  backup.wpstg
FlagDescription
--skip-extractSkip extraction if files already exist
--db-fileUse a specific SQL file for database restoration

Opciones de rendimiento de base de datos

Ajusta el rendimiento de la importación de base de datos:

FlagDefaultDescription
--db-batch-size1000Number of rows per INSERT statement
--db-insert-singlefalseUse single-row INSERT statements
--db-timeout15sDatabase connection timeout
--db-innodb-strict-modeoffEnable InnoDB strict mode during restore

Ejemplo: importación más lenta pero más compatible:

wpstaging restore --path=/var/www/html \
  --db-insert-single \
  --db-batch-size=100 \
  backup.wpstg

Verificar archivos restaurados

Verifica la integridad de los archivos tras la restauración:

wpstaging restore --path=/var/www/html --verify backup.wpstg

Todos los indicadores de restore

Flags:
  -o, --outputdir string          Directory for extracted files (default: ./wpstaging-output)
  -p, --path string               WordPress installation path (required)
      --site-url string           Target WordPress site URL (use if detection fails)
      --overwrite string          Overwrite target directory (yes/no) (default "yes")
      --overwrite-db string       Overwrite database (yes/no) (default "yes")
      --overwrite-wproot string   Overwrite WP root files (yes/no) (default "no")
      --db-prefix string          Target WordPress DB table prefix (use if detection fails)
      --db-innodb-strict-mode     Enable InnoDB strict mode (off by default during restore)
      --db-file string            Use the extracted backup SQL file to resume database restoration
      --db-batch-size int         Database insert batch size (default "1000")
      --db-insert-single          Use single-row INSERT statement per query
      --db-timeout string         Database connection timeout (default "15s")
      --verify                    Verify integrity of extracted files
      --skip-extract              Skip extraction if files already exist
      --from string               Backup file path or remote URL (http/https)

Solución de problemas

Error de conexión a base de datos

  • Verifica que wp-config.php tiene las credenciales de base de datos correctas
  • Comprueba que el servidor de base de datos está en ejecución y es accesible
  • Intenta proporcionar las credenciales explícitamente con los indicadores --db-*
  • Para bases de datos remotas, asegúrate de que el firewall permite las conexiones

Permiso denegado

  • Asegúrate de tener permisos de escritura en el directorio de destino
  • En Linux/macOS, puede que necesites ejecutar como el usuario del servidor web o usar sudo

Error al detectar la URL del sitio

Si la CLI no puede detectar la URL del sitio automáticamente, proporciónala manualmente:

wpstaging restore --path=/var/www/html --site-url=https://mysite.com backup.wpstg

Pasos siguientes

Updated on mayo 22, 2026

Rene Hermenau

Autor: Rene Hermenau

About the author: René Hermenau is the founder of WP STAGING. He works on WordPress backups, staging, migrations, database handling, and safe deployment workflows.