Sé que esta pregunta se ha hecho miles de veces, pero realmente estoy tratando de descubrir cómo sacar el máximo provecho de Git cuando trabajo con WordPress.
Recorrí la web y leí docenas de artículos, todos los cuales parecen cubrir el tema brevemente. Aquí hay algunos de los más notables que he leído recientemente.
- Control de versiones de WordPress
- Administrar implementaciones de temas de WordPress con Git
- Administre su tema personalizado de WordPress usando git en lugar de FTP
Actualmente, mi flujo de trabajo se ve así.
- Instalar WordPress localmente
- Desarrollar tema
- Exportar bases de datos de WordPress desde el servidor local
- Importar la base de datos de WordPress al servidor remoto
- Sube archivos y temas de WordPress a través de FTP
- El cliente hace cambios
- Descargue archivos y temas de WordPress a través de FTP y exporte bases de datos de WordPress desde un servidor remoto
- Reemplazar archivos localmente
- Hacer cambios de desarrollo
- Vuelva a cargar a través de FTP, exporte e importe la base de datos al servidor remoto
Me doy cuenta de que Git puede simplificar este proceso. Parece que la mejor manera de hacer esto es tener un archivo .gitignore que ignore ciertos directorios que no necesitan ser rastreados, así como tener un archivo wp-config.php local y remoto.
Pero, ¿cómo manejas las bases de datos? Los clientes generalmente harán cambios (publicaciones / páginas / complementos). ¿Todavía necesito exportar desde la base de datos remota e importar de nuevo en mi servidor local?
¿Alguien puede sugerirme el mejor flujo de trabajo aquí? Y guíame por los escalones.
Además, probablemente me gustaría usar Bitbucket ya que los repositorios privados con ellos son gratuitos, a diferencia de GitHub.
Cualquier ayuda sería apreciada.
¡Gracias por adelantado!
fuente
Respuestas:
Soy uno de los desarrolladores de WP Migrate DB Pro , y me gustaría responder a la pregunta de @ Ennui:
"¿Sabe si el script de reemplazo de URL de DB que ejecuta tiene en cuenta las cadenas serializadas?"
Sí, maneja datos serializados. De hecho, esa es la razón principal por la que desarrollé la versión gratuita del complemento en 2009. :)
Desafortunadamente solo tengo una reputación de 41 años, así que no pude responder al comentario de @ Ennui. Lo siento por eso.
fuente
Estoy al borde de votar para cerrar esto como "no constructivo", ya que parece ser el tipo de cosa que solicitará debate y opinión en lugar de respuestas. Pero...
Ese no es el aspecto de mi flujo de trabajo, y hace que mi enfoque (y respuesta) sea diferente de la mayoría del resto de las respuestas hasta ahora.
Básicamente, mantengo al cliente alejado de mis cosas tanto como sea posible hasta que entreguemos el sitio.
El código se mueve en una dirección: de local a puesta en escena o producción. Nunca se mueve para otro lado. Eso elimina algunos de sus pasos y me da tranquilidad. No quiero que se me culpe por las modificaciones del cliente en mi código y no quiero importar algún archivo pirateado, que es una posibilidad distinta de cero.
Y la base de datos solo se mueve una vez, si es que lo hace, lo que reduce en gran medida el problema. Así que supongo que manejo el problema del "movimiento de la base de datos" al reducir o eliminar la necesidad de mover la base de datos. También reduce los problemas de corrupción de la base de datos que pueden surgir y reduce las posibilidades de importar un hack.
Es cierto que tengo que configurar el sitio de producción: enlaces permanentes, menús, etc., pero eso me obliga a trabajar en el sitio de producción, así que lo considero una especie de depuración. Me ayuda a confirmar que las cosas funcionan en el sitio de producción como deberían.
fuente
https://github.com/nathanielks/Wordpress-Capistrano-Deploy
No lo he intentado yo mismo (todavía), pero dice implementar todo, incluida la base de datos.
También hay un tutorial que lo acompaña: Tutorial parte 1 | parte 2
fuente
Echa un vistazo a la pila de roca madre . Utiliza Composer para administrar la versión de Wordpress y complementos de terceros, y también incluye capistrano para implementaciones y vagabundo / ansioso para configurar servidores que incluyen servidores virtuales locales para el desarrollo.
fuente
Recientemente hice muchas pruebas con respecto a esto y aquí está el flujo de trabajo que uso, que hace más o menos lo que estás pidiendo:
No estoy familiarizado con las herramientas de migración de db, pero sería una gran adición a este flujo de trabajo.
Aquí están los detalles completos sobre el flujo de trabajo http://geekpad.ca/blog/post/maintainble-portable-wordpress-using-composer-wp-cli
fuente
Con respecto a la "clonación" de la base de datos, utilizo WP Migrate DB Pro: http://deliciousbrains.com/wp-migrate-db-pro/
Es un servicio pago, pero no cuesta mucho, y le permite fácilmente extraer o empujar su base de datos de su desarrollador a su servidor en vivo y viceversa. Cambia las URL y todo lo que necesita cambiar en el camino.
fuente