Es una práctica común para los desarrolladores trabajar en múltiples servidores o niveles para probar su trabajo y asegurarse de que el código esté listo para la implementación sin ingresar errores en un entorno de producción en vivo. El motor WP ofrece múltiples medios para cada instalación de WordPress y ofrece un flujo de trabajo de nivel múltiple. Los desarrolladores pueden trabajar en un sitio de desarrollo separado hasta que el código esté listo para ser compartido con un cliente. El código completado puede ser presionado para la puesta en escena para la aprobación del cliente. Una vez que el cliente está desconectado, es posible ingresar el código en vivo en el portal del usuario del motor WP o para la línea de comandos usando GIT.
Esta configuración proporciona una gran flexibilidad y existe la ventaja de ejecutar los tres niveles en el entorno exacto, para eliminar cualquier problema relacionado con la compatibilidad de la versión o las diferencias de configuración. Debido a que el código se prueba exactamente en la misma pila, no hay razón por la que funcionará en un nivel y no en el otro. Sin embargo, hay un problema. Los desarrolladores a menudo trabajarán en un entorno local como parte de su flujo de trabajo diario, que ocurre fuera del entorno del motor WP. El problema es que para sincronizar los datos entre los dos entornos, se requiere una exportación/importación de la base de datos junto con otras transformaciones menores.
En mi última publicación, observé cómo se pueden configurar los aliados WP-CLI para usar SSH para acceder a servidores locales y remotos. En esta publicación, romperé el problema sobre cómo sincronizar una base de datos local con un sitio remoto utilizando la línea de comandos y WP-CLI. En este caso, el sitio remoto es mi instalación de producción de WordPress que se ejecuta en el motor WP y mi instalación local es una copia del sitio que uso para el desarrollo que ejecuta VVV en MacBook Pro. Ok, vamos a los detalles. Pedidos para bases de datos WP-CLI Una de las funciones WP-CLI llamadas `WP DB` permite administrar y administrar la base de datos. Es posible crear una nueva base de datos, descartar tablas, reparar una base de datos e incluso ejecutar consultas que se hayan almacenado como un archivo. Hay muchas otras operaciones disponibles, como puede ver en la documentación de WP-Clunction `WP DB`, tome comandos adicionales para especificar qué operaciones deben realizarse. Un orden típico se ve así: `WP DB Optimize`. En este caso, le pedimos a WP-CLI que optimice la base de datos. Las órdenes WP-CLI son algo fáciles de recordar porque siempre comienzan con `WP`, entonces hay una función como ‘DB` y luego los comandos seguirán. Para nuestro ejemplo, utilizaré la importación `WP DB DB ‘y’ WP DB DB para hacerse cargo de la base de datos en mi servidor de producción y luego importar a mi cuadro VVV Vagabond local. Para apuntar a una determinada instancia remota de WordPress, he configurado el alias VVV, que me permitirá simplemente dirigir una instancia remota o local de WordPress.
A continuación, la exportación del comando completo de la base de datos que utilizo para exportar la base de datos en mi servidor de producción. WP @Prod DB Export -> Prod.SQL `WP @Product Especifica que quiero ejecutar este comando WP -CLI en mi servidor de producción, que está configurado como alias. El comando real que se ejecuta es `WP @Prod DB Export, que exportará la base de datos en un archivo local en el servidor de producción y lo nombrará en el formato` {dbname}-{ymd}-{random-hash} .sql` como una opción predeterminada. Mi script requerirá que el archivo esté específicamente designado y descargado en mi automóvil local, por lo que hay opciones adicionales. La opción `–` permite que el archivo se elimine en la salida estándar en mi terminal. Esto lleva a la impresión SQL DUP en la pantalla y da como resultado una larga serie de instrucciones SQL. La opción final `>` permite que el resultado se almacene en un archivo en lugar de imprimir en la pantalla, que llamé `prod.sql`.
Obteniendo la URL del sitio en vivo para que la base de datos se importe correctamente, deberemos cambiar la opción para la URL del sitio almacenado en la tabla WP_OPTIONS. Este cambio permite que nuestros enlaces envíen al sitio de desarrollo en nuestro entorno de desarrollo, en lugar de a nuestro sitio de producción. Podemos hacer esto rápidamente con WP-CLI ejecutando la opción `WP Get. Debido a que tenemos un alias configurado para la producción, podemos usarlo para acceder a nuestro sitio de producción y obtener el valor de “SiteoUrl”. El pedido completo muestra esto: `wp @ prod opción obtenga siteurl ()`. En el espíritu de automatización, es lógico guardar el valor, para que podamos usarlo para actualizar nuestro sitio de desarrollo. Podemos hacer esto almacenando el valor del sitio en una variable. El orden completo se muestra de la siguiente manera: `prod_siteurl = $ (wp @prod opción get siteUrl);`. Luego podemos obtener el valor de nuestro sitio de desarrollo para cambiar el sitio de la exportación de la base de datos para operar en el sitio de desarrollo. Todo esto se recopila para verse como el siguiente ejemplo. Obit el sitio de la producción y el desarrollo prod_siteurl = $ (wp @prod opción siteurl);
Dev_siteurl = $ (opción wp @dev get siteUrl); Búsqueda y reemplazar Hemos almacenado los valores para la URL del sitio de producción y desarrollo para ejecutar una operación de búsqueda y reemplazo en nuestra base de datos exportada para actualizar el valor SiteURL. Esto se puede hacer ejecutando el comando `WP Search-Replace prod_siteurl dev_siteurl`. Debido a que hemos guardado los valores de SiteUrl como variable, podemos usarlos en nuestro orden y podemos realizarlos en nuestro servidor de desarrollo. Busque y reemplace el valor SiteUrl en desarrollowp @dev Search-replace $ prod_siteurl $ dev_siteurl Tenemos un poco de limpieza en términos de archivo sql exportado. Como he actualizado la base de datos, no hay necesidad de guardarla y puede eliminarse. Eliminar el escenario final .sql rm prod.sql El texto a continuación se puede guardar como getdb.sh en su máquina local y ejecutar una vez que cambie los permisos para permitir que el script se ejecute. Puede agregar permisos de ejecución al script usando el comando chmod desde la línea de comando. Ejecute permiso con el chmod chmod +x getdb.sh todos juntos ahora ahora el script se puede ejecutar ahora escribiendo lo siguiente en el director en el que se ha guardado el script.

Ejecute el script ./getdb.sh Complete Bash Script #!/Bin/Bash Este script obtendrá una base de datos de producción e importará a una instalación local de WordPress. El alias @prod y @dev se utilizan para simplificar los comandos. Obtenga SiteUrl de Prod y dev ProD_SiteUrl = $ (WP @Prod Oppection Get SiteUrl);
Dev_siteurl = $ (opción wp @dev get siteUrl); Exportar la base de datos de Prod e importar a dev WP @Prod DB Exportar -> Prod.SQL
Wp @dev db import /srv/www/edmund/prod.sql actualización siteurl wp @dev search-replace $ prod_siteurl $ dev_siteurl#eliminar el archivo .sql
RM Prod.SQL también puede ver este código como un GIST.
Conclusión OK, por lo que es mucho para considerar, pero en realidad hemos automatizado completamente una conexión remota con nuestra máquina de producción y descargamos un volcado MySQL de la base de datos de WordPress en nuestro automóvil local. Luego realizamos una operación de búsqueda y reemplazo para actualizar el valor SiteUrl y permitir que los enlaces funcionen correctamente dentro del sitio de desarrollo. Es bastante fuerte y se puede ejecutar a partir de algunas líneas de código siempre que sea necesario, guardando los comandos en un script y permitiendo que sean ejecutables. El resultado final es una exportación/importación reutilizable de la base de datos que se puede rodar con un orden simple.
Esto todavía es por ahora y espero que sea útil. Estar con mis ojos en mis muchas publicaciones en el futuro cercano.
Uso de la línea de control para la automatización – Parte II
Tags Uso de la línea de control para la automatización - Parte II
homefinance blog