Estoy trabajando en un módulo Magento y necesito saber si es posible revertir una serie de guardados de modelo. Básicamente, tengo cinco modelos más varios de mi módulo que necesito para salvar uno tras otro:Magento atrapando excepciones y volviendo atrás las transacciones de la base de datos
admin/role
admin/user
core/website
core/store_group
core/store
mymodule/model1
mymodule/model2
mi problema es que cada vez que alguno de estos modelos lanzar una excepción, necesito entrar en MySQL y eliminar manualmente todas las filas que se guardaron Esto es muy improductivo.
Estoy bastante seguro de que Magento no tiene un procedimiento de reversión al que pueda acceder en mi contexto. Por ejemplo, miré en Mage_Core_Model_Abstract
y en el método de guardar, los mecanismos de reversión están todos protegidos.
Entonces, mi pregunta es, ¿hay alguna mejor práctica para hacer transacciones de bases de datos en Magento que deba tener en cuenta?
Esto funcionó exactamente. Gracias. También descubrí que puedo guardar la transacción nuevamente si necesito agregar más datos a los modelos. Por ejemplo, necesito establecer el id_web y el store_group_id para el modelo de tienda. Después de guardar la primera transacción, el modelo se actualiza con la clave principal. Luego vuelvo a guardar y las filas se actualizan. –