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

Podemos encontrarnos con situaciones en las que necesitemos hacer una búsqueda y reemplazo de forma masiva sobre una base de datos, y que por limitaciones de nuestra aplicación no podamos efectuarlo desde la interfaz de administración.

Es en estas situaciones cuando la potencia y simplicidad del lenguaje SQL entra en juego.

En este caso práctico se trata de una web desarrollada con Wordpress, hemos activado el protocolo https:// y nos hemos dado cuenta que nuestros posts tienen cientos de enlaces hacia nuestro dominio con http://.

Este cambio sería tan sencillo como ejecutar desde la herramienta SQL disponible en phpMyAdmin la siguiente consulta:

UPDATE wp_posts SET post_content = REPLACE(post_content,'http://dominio','https://dominio');

En detalle vemos que esta consulta se ejecuta sobre la tabla que almacena los posts, wp_posts, toma el contenido de post_content que sería el cuerpo de los posts, busca las coincidencias para http://dominio y las sustituye por https://dominio y guarda los cambios.

Todo esto se realiza de forma masiva sobre todos los posts en apenas segundos tras ejecutar.

La consulta podría ser adaptada para hacer cambios en cualquier aplicación, Joomla, Prestashop, Drupal, simplemente debes cambiar la tabla y las referencias a la columna en la que quieras buscar y reemplazar coincidencias.

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.

Dos opciones destacables: