¿Cuál es el mejor procedimiento para combinar el trabajo realizado en una copia de desarrollo de un sitio con la copia de producción en vivo? Muchas veces se ha agregado una gran cantidad de contenido nuevo al sitio desde que comenzó el desarrollo de las funciones más recientes. Y la mayoría de las adiciones a un sitio implicarán cambios en la base de datos. Copiar cualquier archivo nuevo es fácil, pero ¿qué pasa con la base de datos? ¿Cómo combina sus cambios con la base de datos de producción existente sin perder el nuevo contenido que se agregó desde la última vez que actualizó el sitio de producción? ¿Hay algún módulo que ayude con esto?
40
Respuestas:
Para ver los tipos de contenido, las vistas y los cambios de estructura en el sitio de desarrollo, utilice las Características para exportar la base de datos a código.
Para la migración de contenido hay muchas opciones, pero no una sola solución sólida. Un ejemplo es la suite de implementación .
fuente
He adoptado básicamente dos escuelas de pensamiento aquí (una tercera escuela de pensamiento, haciendo diferencias en la base de datos, no discutiré porque la complejidad es bastante alta).
1) Implemente soltando la base de datos de producción e importando un mysqldump de la base de datos de desarrollo. Opcionalmente, ejecute una búsqueda / reemplazo de expresiones regulares de antemano en cualquier enlace absoluto codificado que haga referencia a la URL del desarrollador en el volcado de SQL. Después de importar el dev db en prod, ejecute automáticamente instrucciones SQL (generalmente a través de script) para cambiar cualquier configuración que sea diferente para prod que para dev (por ejemplo, tal vez tenga en la tabla de variables algunas configuraciones de conexión para conectarse a sistemas externos que necesita cambie para apuntar a sistemas externos prod en lugar de a la versión de desarrollo).
2) Use el módulo Características , como lo menciona budda, para la configuración de administración, y use el módulo Exportar nodo para la exportación / importación de contenido en combinación con el módulo Eliminar todo . Entonces el flujo de trabajo es:
Una nota, sugeriría adoptar un flujo de trabajo estándar, donde el contenido va solo en una dirección. O Dev -> Prod o Prod -> Dev (prefiero este).
He hecho esto, y lo estoy haciendo en algunos sistemas grandes, con resultados bastante buenos, pero siempre habrá muchas formas de cortar esta manzana, elija la que mejor funcione para usted.
fuente
Bases de datos de volcado de copia de sitio en vivo y copia de desarrollo de sitio en archivo SQL (use los mismos parámetros y configuraciones para ambos volcados).
Luego, compare ambos archivos SQL utilizando una pequeña herramienta de comparación ExamDiff . Mostrará las diferencias de archivos lado a lado con diferentes colores. También puede saltar directamente a las diferencias (sin desplazarse). Examine las diferencias y agregue / edite líneas al archivo SQL del sitio en vivo. Asegúrese de que no haya una ruta / URL absoluta del entorno de desarrollo en ese archivo. ¡Eso esta terminado! Hora de restaurar la base de datos para el sitio en vivo.
Haz tu vida más fácil:En el primer paso, volcar solo las tablas que se cambian. Por ejemplo, si ha editado un módulo en la copia de desarrollo que se dirige a una tabla separada, volcar solo esta tabla. Si no está seguro acerca de una tabla en particular, todo el volcado de la base de datos está bien.
fuente