2011-12-27 4 views
5

Noté que en la Guía de estudio para desarrolladores certificados de Magento, en la sección Base de datos, uno de los elementos mencionados es "Escritura de guiones de degradación (retrotracción)".¿Magento es compatible con las secuencias de comandos de downgrade/rollback para módulos?

He hecho algunas búsquedas para ver si las secuencias de comandos de degradación son compatibles y parece que no lo son. Encontré este thread a principios de este año en el que parece que llegaron a la conclusión de que los guiones de baja calificación no eran compatibles en ese momento.

También, algunos buscaron en google y encontraron esto article discutiendo lo que parece ser un soporte inicial para los scripts de retroceso en el núcleo.

También busqué en la aplicación/code/core/Mage para "deshacer" y "degradar" y casi todo lo que encontré fue código relacionado con las reversiones de transacciones DB.

¿Por qué la guía de estudio estaría hablando de esto si no es compatible? Debo estar perdiendo algo.

Respuesta

5

Las versiones actuales de Magento no tienen implementación para deshacer los scripts de migración de base de datos, donde deshacerse significa identificar que un número de versión del módulo ha disminuido y ejecutar un script apropiado.

Recuerda, estás viendo una guía de estudio, no un manual.

Si bien no hay soporte para retrocesos formales en la versión actual de Magento, como desarrollador de Magento, es posible que necesite deshacer los cambios en la base de datos realizados en una actualización anterior del módulo. Estaría listo para preguntas que describan ese escenario, con respuestas que pongan a prueba su conocimiento de la funcionalidad existente de Magento.

+2

Esto es, de hecho, el caso. – benmarks

+0

Gracias Alan, seguro tiene sentido. La guía de estudio arruinada me tiene por todo el mapa. Realmente está escrito bastante bien, creo que desde la perspectiva de darte lo suficiente como para hundir tus dientes pero no darte todo de manera tan literal que todavía tienes que practicar bastante y cavar. Bueno, mi siguiente pregunta es cómo conectarme al evento donde Magento detecta una disminución en el número de versión, además de simplemente anular esa clase, pero voy a investigar un poco más antes de publicar esa pregunta. – kalenjordan

0

Aquí está: Mage_Core_Model_Resource_Setup::applyUpdates() Disponible, al menos, desde Magento 1.3.

+1

Hm, pero cuando rastreo eso en _modifyResourceDb(), parece que TYPE_DB_ROLLBACK $ actionType no es compatible? Solo falta en la declaración de cambio. ¿No tiene un script de retrotracción de ejemplo por ahí? ¿O simplemente invierte programáticamente los pasos de configuración del script de configuración? – kalenjordan

+1

Oh, tienes razón. Del método '_modifyResourceDb' si está claro que la reversión y la desinstalación no funcionan :) – vsushkov

+0

PERO puede escribir su propia clase de configuración que admitirá la reversión y la desinstalación (consulte' Mage_Core_Model_Resource_Setup :: applyAllUpdates() ', string' $ setupClass = new $ className ($ resName); ') – vsushkov

Cuestiones relacionadas