Página principal » WordPress » Buscar en masa y reemplazar las bases de datos de WordPress - La manera fácil

    Buscar en masa y reemplazar las bases de datos de WordPress - La manera fácil

    Hay varias ocasiones donde tenemos que Cambiar URLs en nuestra base de datos de WordPress. Por ejemplo, debemos hacer esto después de migrar una base de datos de WordPress desde un sitio, por ejemplo. desde el http://acme.com sitio de producción remota, a la http://acme.dev sitio web de desarrollo local en nuestra computadora.

    WordPress.org alberga una gran cantidad de complementos, como WP DBManager y WP Migrate DB, y también hay una serie de herramientas de terceros que le permiten importar base de datos fácilmente. La parte difícil es tener que cambiar cada instancia de URL dentro de la base de datos.

    Después de migrar la base de datos, URLs dentro de ella todavía apunta al sitio antiguo, en este caso a acme.com. Puede encontrar la antigua URL en el wp_options tabla, establecido como el valor de la Sitio URL y casa opciones, y probablemente también esté incrustado en varias otras filas y tablas en la base de datos. Estas URL antiguas pueden eventualmente evitar que su sitio se ejecute correctamente, por lo que necesita cambiarlos a la nueva URL, en nuestro ejemplo para acme.dev.

    IMAGEN: Sequel Pro, buscando valor en la base de datos

    En este punto, accediendo a nuestro sitio de desarrollo en acme.dev simplemente conducirá a una página en blanco.

    Entonces, ¿cómo cambiamos todas estas URL en la base de datos??

    Ejecutando una consulta SQL

    Por lo general, la gente ejecutaría la siguiente consulta SQL que reemplaza los valores de Sitio URL y casa opciones en el wp_options mesa.

     ACTUALIZAR wp_options SET option_value = replace (option_value, 'http://acme.com', 'http://acme.dev') DONDE option_name = 'home' O option_name = 'siteurl'; 

    Posteriormente, utilizan otra consulta SQL para reemplazar todas las apariciones de URL en el wp_posts mesa, concretamente en el Publicar Contenido columna de cada fila.

     ACTUALIZAR wp_posts SET post_content = replace (post_content, 'http://acme.com', 'http://acme.dev'); 

    Ejecutar estas consultas es una solución viable, pero al mismo tiempo, no es conveniente hacerlo. Incluso podría ser estresante, al ver cómo la base de datos puede volverse descontrolada debido a un simple descuido dentro de la consulta..

    Aprovechando WP-CLI

    Otra ruta que podemos hacer, y que he encontrado para ser una alternativa más útil, es por aprovechando la línea de comandos de WP-CLI. Esto significa que necesitará tener instalado WP-CLI.

    Suponiendo que ha instalado WP-CLI y tiene el wp comando accesible como alias, navegue al directorio donde residen los archivos de su sitio de WordPress.

    Luego, ejecute el siguiente comando:

    wp search-replace 'http://acme.com "http://acme.dev

    El primer parametro, 'http://acme.com', Es la antigua entrada que se sustituirá por la segunda., 'http://acme.dev'.

    La línea de comando buscará a través de Todas las tablas dentro de la base de datos., no solo el Publicar Contenido columna y wp_options mesa, y reemplazar cada instancia De la entrada pasada a través de los parámetros del comando..

    Como puede ver en la captura de pantalla anterior, se han realizado un total de 225 reemplazos. Y lo hemos hecho a través de una simple línea de mando..

    Creo que vale la pena mencionar que podemos usar el wp buscar-reemplazar comando, no solo para reemplazar URLs, sino cualquier parte de valor almacenado en la base de datos también. También podemos limitar la operación en una tabla determinada pasando el nombre de la tabla como el cuarto parámetro, de la siguiente manera:

    wp search-replace '.jpg ".webp' wp_posts

    Ejecutando el comando anterior, solo buscará a través de wp_posts, La tabla que almacena nuestro contenido (publicaciones, páginas, etc.) y reemplaza la extensión de imagen de .jpg a .webp.

    WP-CLI hace que una operación de SQL enredada parezca más intuitiva, y puede trabajar con ella de una manera más conveniente. Si desea afinar sus comandos, eche un vistazo a la documentación de WP-CLI, que le proporciona una lista de opciones para realizar una operación más avanzada con el wp buscar-reemplazarmando.