Magento был разработан и предназначен для использования в безопасной для транзакций среде.
Вы можете попробовать переключиться на какую-либо другую базу данных, которая безопасна для транзакций (например, Oracle), но тогда вам нужно будет самостоятельно написать адаптеры PDO и модели ресурсов для Oracle (они не являются частью Magento). Но если ваш провайдер даже не поддерживает InnoDB
, я не верю, что он будет поддерживать Oracle или что-то подобное^^
Другой возможностью было бы заставить Magento работать с нетранзакционным движком mySQL, таким как MyISAM
. Вам нужно будет переписать множество процессов, базовых моделей и контроллеров, чтобы изменить поведение Magento с транзакционного на нетранзакционное.
Мало того, что это будет куча работы, я почти уверен, что вы будете получать массу удовольствия каждый раз, когда будете пытаться обновить свою версию Magento. Я настоятельно рекомендую никогда не изменять ядро таким образом.
Единственными механизмами MySQL, поддерживающими транзакции, являются InnoDB
и NDB
. Magento поставляет модели ресурсов только для InnoDB
. Итак, если вы спросите меня, если ваш провайдер не разрешает InnoDB
по каким-либо причинам, я бы порекомендовал просто перейти к другому провайдеру, который это делает.
person
Jürgen Thelen
schedule
21.05.2012