transacciones tipos propiedades manejo las fundamentos ejemplos datos atomicidad php database magento transactions model

php - tipos - transacciones en mariadb



Magento detecta excepciones y reduce las transacciones de bases de datos (1)

He visto lo siguiente en el código central, y parece que es justo lo que pediste.

$transactionSave = Mage::getModel(''core/resource_transaction''); $transactionSave->addObject($model_one) $transactionSave->addObject($model_two) $transactionSave->save();

El objeto core/resource_transaction permite agregar objetos Magento y realizar un guardado masivo de ellos. Pruébalo, y me encantaría saber cómo funciona, o no funciona, en los comentarios.

Estoy trabajando en un módulo de 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 guardar uno después del otro:

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 lanza una excepción, necesito ingresar a MySQL y borrar manualmente todas las filas que fueron guardadas. 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 yo deba tener en cuenta?