I am focusing on a Magento module and have to know if you can roll back a number of model saves. Essentially, I've five models plus several from the module that I have to save one by one:
admin/role admin/user core/website core/store_group core/store mymodule/model1 mymodule/model2
My issue is any time these models throw the best, I have to get into MySQL and by hand remove all of the rows which were saved. This is useless.
I am confident that Magento does not possess a rollback procedure will be able to access during my context. For instance, I looked in
Mage_Core_Model_Abstract as well as in the save method, the rollback systems are protected.
So, my real question is, can there be some best practice for doing database transactions in Magento which i should know?
I have seen the next utilized in core code, also it appears like its precisely what you purchased.
$transactionSave = Mage::getModel('core/resource_transaction'); $transactionSave->addObject($model_one) $transactionSave->addObject($model_two) $transactionSave->save();
core/resource_transaction object enables you to definitely add Magento objects, and execute a mass save money on them. Give that the try, and I'd like to hear how this may, or does not, meet your needs within the comments.