Magento без InnoDB

Я пытаюсь установить Magento Community Edition для моего последнего проекта на нашем сервере, однако платформа хостинга, которую мы используем в настоящее время, не позволяет и не позволяет нам устанавливать или использовать InnoDB.

Кто-нибудь знает о каких-либо конфигурациях/изменениях, которые можно сделать, чтобы заставить его работать по-другому?


person Aaron Lee    schedule 21.05.2012    source источник
comment
Ответ на этот вопрос прост. Замените своего хостинг-провайдера на того, который понимает хостинг Magento. В долгосрочной перспективе это будет гораздо менее неприятно, поскольку отсутствие поддержки Innodb — это всего лишь вершина, которая отвлекает ваше внимание от широкой подводной отмели, в которую ваш веб-сайт электронной коммерции рухнет, когда вы обнаружите все другие несовместимости. Будьте готовы учиться на этом опыте других ;^)   -  person Fiasco Labs    schedule 21.05.2012


Ответы (2)


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
comment
Вы имеете в виду безопасность транзакций? - person ilanco; 21.05.2012
comment
Начиная с Magento 1.6.2, ядро ​​начинает поддерживать другой тип базы данных, на данный момент это Oracle. Ознакомьтесь с руководством по RDBM, magentocommerce.com/images/uploads/RDBMS_Guide2.pdf. - person Sylvain Rayé; 21.05.2012
comment
@Диглин: +1. Однако базовые уровни абстракции базы данных/ресурсов, делающие возможным использование других баз данных, существуют, по крайней мере, с CE 1.3. К сожалению, Magento по-прежнему не поставляет специальные адаптеры PDO или модели ресурсов для других баз данных, кроме MySQL (даже не в CE 1.7). В любом случае ссылка, о которой вы говорите, определенно является хорошей отправной точкой для разработчиков, пытающихся реализовать собственные адаптеры PDO и модели ресурсов. - person Jürgen Thelen; 21.05.2012

Я пытался установить Magento 1.9 CE на свой собственный сервер разработки. В конце концов загрузчик Magento неправильно заявил, что InnoDB не является ядром базы данных по умолчанию. Это была проблема, с которой я столкнулся при установке Magento CE.

Да, это правда, что MariaDB, совместимая с двоичными файлами замена MySQL, использует в качестве своего движка xtradb, а не innodb.

https://mariadb.com/kb/en/mariadb/xtradb-and-innodb/

Однако у меня возникает соблазн сделать вывод, что проблема заключается в Magento: >Установка Magento жалуется на отсутствие InnoDB, когда она доступна

person Coffee123    schedule 19.06.2015