Actualmente uso un script de volcado y confirmo la base de datos al repositorio git.
--skip-extended-insert --skip-comments --skip-dump-date
significa que una diferencia me puede dar una idea justa de lo que ha cambiado, pero todo se derrumba si trato de fusionarme.
WP_SITEURL, WP_HOME y todos los demás lugares donde Wordpress almacena las URL completas necesitan actualizarse al importar a otro host (prueba, puesta en escena, producción)
¿Alguien está usando un método mejor?
Temas principales:
- Wordpress almacena las URL completas en toda la base de datos (no portátil)
- Muchos otros cambios de registros no relevantes
- valores de auto_increment (solo los elimino, pero me he encontrado con problemas de identificación)
- marcas de tiempo (también pueden eliminarse, potencialmente)
- registros transitorios * ... no tengo idea de qué hacer con ellos
Un proceso que creara migraciones con marca de tiempo, con solo las cosas agregadas o eliminadas, sería ideal ... pero no estoy seguro de si es posible.
database
migration
version-control
Jacob Dorman
fuente
fuente
Respuestas:
Aquí hay dos posibles soluciones, ambas son en realidad herramientas genéricas de control de versiones de MySQL, pero se pueden adaptar a su flujo de trabajo:
dbv.php
Esta herramienta crea "migraciones", que son básicamente scripts SQL, a partir de los cambios detectados en la base de datos. Estas secuencias de comandos se almacenan en un directorio local y, por lo tanto, se pueden confirmar en su VCS actual (git, por ejemplo).
Se utiliza a través de una interfaz web PHP.
DBVC
Fundamentalmente similar a la herramienta anterior, esta se basa en una interfaz de línea de comando. Se configura a través de un archivo json. La principal diferencia es que no genera automáticamente los archivos de migración.
Hay un problema pendiente para integrar esto con el similar anterior, por lo que es algo que debe buscar.
Complementos de Wordpress
Algunos complementos que podrían ayudar en la creación de un flujo de trabajo repetible:
fuente
Estoy haciendo esto en MYSQL.
Pone todas las tablas de esquema y datos en su propio archivo para que pueda ver fácilmente lo que ha cambiado.
A diferencia de la mayoría de las otras soluciones en este hilo, esta solución obtiene los datos, lo cual es importante para un CMS.
Esta solución no utiliza ninguna herramienta, solo un script de línea de comando.
editar: descubrí que mi código anterior tenía un error en el que el orden de importación era importante. quitándose la
--compact
bandera corrige el error.Código antiguo
y aquí está cómo importar
fuente