Cómo implementar cambios de base de datos de desarrollo a producción en Magento

9

Soy consciente de que los módulos tienen scripts de instalación y configuración de datos para hacer que la base de datos sea portátil desde el desarrollo hasta la producción.

Pero en nuestro caso tenemos desarrolladores de UI que agregan atributos y productos a través de la interfaz de administración que se almacena en la base de datos de desarrollo.

El día del lanzamiento, no podemos repetir todos los pasos que realizamos en el entorno de desarrollo, ya que será demasiado tedioso y requerirá mucho tiempo.

¿Hay alguna manera de manejar tales cambios de base de datos cuando se implementa?

Por ahora estamos realizando una diferencia entre la base de datos de desarrollo y la base de datos de producción y generando un SQL que se ejecuta el día del lanzamiento. Pero esto es poco peligroso ya que la base de datos de desarrollo puede contener datos transaccionales de prueba y podemos terminar bloqueando las tablas transaccionales en prod si nuestro SQL tiene alguna declaración que modifique las tablas transaccionales.

¿Hay mejores prácticas en torno a esto? Gracias por la ayuda por adelantado

Jeetendra Pujari
fuente

Respuestas:

8

Existen diferentes extensiones para migrar datos entre entornos, pero usarlas es dispararse. Definitivamente no quieres arruinar tu entorno de producción si algo sale mal.

La única forma correcta de migrar datos es usar scripts de configuración.

También permitirá configurar nuevos entornos (por ejemplo, para nuevos peces de su equipo) que estarán actualizados con el estado actual de las cosas.

Buena pregunta por cierto.

usuario487772
fuente
Personalmente, he descubierto que algunos de los módulos de Magento Connect no siempre son completamente compatibles en términos de ejecutar scripts de configuración desde cero. Todavía tengo que determinar exactamente qué sucedió, pero la configuración de nuestra tienda está en un estado tal que, a partir de una base de datos vacía, los scripts de instalación entran en conflicto entre sí y la tienda no puede arrancar la base de datos vacía. Para comenzar de cero nuevamente, necesitaríamos aplicar los módulos uno por uno en orden. O corregir errores en el software que no escribimos.
nbering
¿Cómo se introducen en un script los cambios realizados desde el panel de administración de Magento? Por ejemplo: ¿agregar atributos y productos, o cambiar la configuración de alguna extensión?
Andrea
1
@Andrea simplemente no haces cambios en el panel de administración de Magento. Todo a través de guiones de configuración. Por supuesto, en algunas ocasiones si desea probar algo de lo que no está seguro, eventualmente cambiará algo en el administrador, pero en este caso esos cambios deben revertirse y aplicarse una vez más a través del script de configuración.
user487772
Como un FYI. Terminamos usando scripts de configuración para la mayoría de los cambios. Afortunadamente, a nuestro desarrollador de UI no le importó hacer scripts de configuración una vez que lo aprendió. También puede crear un ticket para la creación de un nuevo script de configuración y asignarlo a sus desarrolladores. También tenemos un equipo de marketing que utiliza la función CMS de magento. En lugar de hacer estos cambios en el entorno de desarrollo, les pedimos que realicen estos cambios en la producción directamente. Agregamos un rol de CMS que solo les daría acceso solo a las funciones de CMS. Luego, ocasionalmente publicamos cambios de CMS de Prod a Stage y luego QA y Dev usando un script personalizado.
Jeetendra Pujari