Magento ловит исключения и откатывает транзакции базы данных

Я работаю над модулем Magento и должен знать, можно ли откатить серию сохранений модели. В принципе, у меня есть пять моделей плюс несколько из моего модуля, которые мне нужно сохранить один за другим:

admin/role admin/user core/website core/store_group core/store mymodule/model1 mymodule/model2 

Моя проблема в том, что всякий раз, когда какая-либо из этих моделей генерирует исключение, мне нужно перейти в MySQL и вручную удалить все сохраненные строки. Это очень непродуктивно.

Я уверен, что Magento не имеет процедуры отката, которую я могу получить в моем контексте. Например, я посмотрел в Mage_Core_Model_Abstract и в методе сохранения все механизмы отката защищены.

Итак, мой вопрос: есть ли какая-то передовая практика для транзакций с базами данных в Magento, о которых я должен знать?

Related of "Magento ловит исключения и откатывает транзакции базы данных"

Я видел следующее, используемое в основном коде, и это похоже на то, что вы заказали.

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

Объект core/resource_transaction позволяет добавлять объекты Magento и выполнять массовое сохранение на них. Попробуйте, и я хотел бы услышать, как это делается, или нет, работать на вас в комментариях.