Desarrollo y bases de datos

Reemplazo y cambios masivos sobre todo el contenido de una base de datos o aplicación

Revisado el · base de datos · sql

Podemos necesitar una búsqueda y reemplazo masivo al cambiar el dominio o activar HTTPS. En WordPress no debe hacerse con un UPDATE ... REPLACE arbitrario: muchos valores están serializados y una sustitución SQL directa puede corromper sus longitudes.

Preparación obligatoria

  1. Crea un entorno staging desde una copia reciente de producción.
  2. Exporta la base antes de cada ensayo y verifica el fichero:
umask 077
wp db export wp-antes-reemplazo.sql
sha256sum wp-antes-reemplazo.sql > wp-antes-reemplazo.sql.sha256
chmod 400 wp-antes-reemplazo.sql wp-antes-reemplazo.sql.sha256
sha256sum -c wp-antes-reemplazo.sql.sha256
  1. Descarga la copia y prueba su importación en una base vacía independiente.
  2. Define el valor exacto de origen, destino, tablas y columnas. No ejecutes una búsqueda sobre toda la base si solo necesitas modificar contenido de entradas.

Previsualizar con WP-CLI

WP-CLI mantiene correctamente los datos serializados. Para cambiar enlaces dentro del contenido de las entradas, limita la operación a la tabla y columna necesarias y ejecuta primero --dry-run:

wp search-replace 'http://dominio.example' 'https://dominio.example' wp_posts \
  --include-columns=post_content \
  --precise \
  --report-changed-only \
  --dry-run

Revisa el número de cambios y una muestra de las entradas en staging. Si el resultado incluye contenido no previsto, restringe más la búsqueda; no continúes con el comando real.

Cuando el ensayo, la copia y la ruta de reversión estén validados, repite el mismo comando sin --dry-run primero en staging. Para producción, crea una nueva exportación, detén las escrituras, ejecuta exactamente el comando validado y comprueba enlaces, widgets, menús, bloques y registros de error antes de reabrir la web.

Si la validación falla, mantén detenidas las escrituras y restaura wp-antes-reemplazo.sql. Confirma que la web vuelve a su estado anterior antes de retirar el mantenimiento.

Alternativas con interfaz

Aplicaciones como Wordpress disponen de plugins para realizar estas tareas por medio de una interfaz gráfica muy sencilla, pudiendo establecer la búsqueda, reemplazo y tablas afectadas. No ofrecen el rendimiento de una consulta SQL directa, pero son una buena alternativa.

También con estos plugins son obligatorios la exportación, el ensayo en staging, la vista previa y la selección explícita de tablas. No uses una opción global sin revisar su alcance.

Dos opciones destacables:

También te puede ayudar

  1. Asistente de bases de datos MySQL
  2. Bases de datos MySQL
  3. Cerrar consultas MySQL en ejecución
  4. Clonar base de datos