WordPress y Git Workflow

23

Sé que esta pregunta se ha hecho mil veces, pero realmente estoy tratando de averiguar cómo sacar lo mejor de Git al trabajar con WordPress.

He rastreado la web y leído docenas de artículos, todo lo que parece abarcar el tema brevemente. Aquí hay algunos de los más notables que he leído recientemente.

- Versión que controla WordPress

- Administración de implementaciones de temas de WordPress con Git

- Administra tu tema personalizado de WordPress utilizando git en lugar de FTP

Actualmente, mi flujo de trabajo se ve así.

  • instala WordPress localmente
  • Desarrollar tema
  • Exportar bases de datos de WordPress desde un servidor local
  • Importar base de datos de WordPress a un servidor remoto
  • Suba archivos y temas de WordPress a través de FTP
  • El cliente realiza cambios
  • Descargue los archivos y temas de WordPress a través de FTP y exporte las bases de datos de WordPress desde un servidor remoto
  • Reemplazar archivos localmente
  • Realice 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, además de tener un archivo wp-config.php local y remoto.

¿Pero cómo manejas las bases de datos? Los clientes usualmente harán cambios (publicaciones / páginas / complementos). ¿Sigo necesitando exportar desde la base de datos remota y volver a importar en mi servidor local?

¿Puede alguien sugerirme el mejor flujo de trabajo para mí aquí? Y guíame a través de los pasos.

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 de antemano!

    
pregunta realph 13.02.2013 - 14:19

6 respuestas

6

Soy uno de los desarrolladores de WP Migrate DB Pro , y me gustaría responder a @ Ennui's pregunta:

"¿Sabe si el script db url replace que ejecuta tiene en cuenta las cadenas serializadas?"

Sí, maneja los 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, por lo que no pude responder al comentario de @Ennui. Lo siento por eso.

    
respondido por el bradt 17.05.2013 - 16:25
4

Estoy en el límite de votar para cerrar esto como "no constructivo", ya que parece ser el tipo de cosa que solicitará el debate y la opinión en lugar de las respuestas. Pero ...

No es así como se ve mi flujo de trabajo, y hace que mi enfoque (y respuesta) sea diferente del resto de las respuestas hasta ahora.

  1. instala WordPress localmente
    1. Esto se clona a partir de un repositorio local de Git que contiene lo último Liberación estable.
    2. También guardo una copia local de la última versión de algunos complementos que Casi siempre instalo.
  2. Cree el tema y los complementos necesarios
  3. Subir a un servidor de ensayo público
    1. El cliente tiene acceso pero no puede cambiar el código y se lo dijo las ediciones de la base de datos no se transferirán al sitio de producción.
    2. Esto significa que no hay razón para descargar el código de nuevo a la servidor de desarrollo.
    3. Y no hay razón para volver a sincronizar la base de datos local
  4. Realice cambios en el sitio local según nuestro personal y los comentarios del cliente.
  5. Cargar cambios
  6. Repita según sea necesario (pero con resistencia creciente :))
  7. Si proporcionamos contenido, lo que no siempre es así, no el cliente) limpiará la base de datos en el servidor de ensayo y cargará contenido.
  8. Implemente cargando el código local en el sitio de producción.
  9. Si hemos creado contenido, el contenido se exporta desde la puesta en escena.    sitio a través de la herramienta de exportación de vainilla e importado en la producción    sitio.
    1. Esta es la única vez que tengo que mover la base de datos, y se hace Con herramientas bastante estándar. Usaré URL de actualización de Velvet Blues para limpiar la base de datos si es necesario.
  10. depurar
  11. el final

Básicamente, mantengo al cliente lejos de mis cosas tanto como sea posible hasta que entreguemos el sitio.

El código se mueve de una manera: de local a la puesta en escena o producción. Nunca se mueve al revés. Eso elimina algunos de tus pasos y me da un poco de tranquilidad. No quiero que me culpen por las modificaciones del cliente en mi código y no quiero importar un archivo pirateado, lo cual es una posibilidad distinta de cero.

Y la base de datos solo se mueve una vez, si es que lo hace, lo que reduce considerablemente el problema. Así que supongo que manejo el problema de "movimiento de 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, 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, por lo 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.

    
respondido por el s_ha_dum 17.05.2013 - 17:44
2

enlace

No he intentado esto (todavía), pero afirma que implementa todo, incluido DB.

También hay un tutorial para ir con él: Tutorial parte 1 | parte 2

    
respondido por el Pat J 17.05.2013 - 16:15
2

Echa un vistazo a la pila de lecho de roca . Utiliza el compositor para administrar la versión de Wordpress y los complementos de terceros, y también incluye capistrano para implementaciones, y vagrant / ansible para configurar servidores que incluyen servidores virtuales locales para el desarrollo.

    
respondido por el rjmunro 18.07.2014 - 16:28
2

Recientemente hice muchas pruebas con respecto a esto y aquí está el flujo de trabajo que uso, que hace prácticamente lo que estás pidiendo:

  • Uso wp-cli para administrar el núcleo de wordpress y actualizar wordpress.
  • Uso compositor junto con enlace para administrar las dependencias de los complementos y los temas.
  • Utilizo git y pongo los archivos básicos de wp en .gitignore. Entonces, en su mayoría, los archivos de tema wp-config.php y child están en git.

No estoy familiarizado con las herramientas de migración de db pero sería una excelente adición a este flujo de trabajo.

Estos son los detalles completos del flujo de trabajo enlace

    
respondido por el Patrick Forget 18.07.2014 - 15:13
1

Con respecto a la base de datos de "clonación", utilizo WP Migrate DB Pro: enlace

Es un servicio de pago, pero no cuesta mucho, y le permite fácilmente extraer o enviar su base de datos desde su desarrollador a su servidor en vivo y viceversa. Cambia las URL y todo lo que necesita cambiar en el camino.

    
respondido por el deadlyhifi 17.05.2013 - 14:22

Lea otras preguntas en las etiquetas