Идея, что любые обновления Magento НЕ ДОЛЖНЫ включать SQL, основана на идее, что
Объекты Magento предоставляют абстракции поверх слоя базы данных / хранилища данных
Вы должны использовать абстракции для обновления Magento, что гарантирует, что если команда Magento изменит взаимодействие объектов с хранилищем данных, ваши обновления будут работать (при условии, что основная команда поддерживает первоначальные «контракты», подразумеваемые объектом). методы)
Итак, проблема в том, что оператор ALTER TABLE
напрямую изменяет хранилище данных. Если вы подписываетесь исключительно на две вышеупомянутые идеи, вам никогда не следует менять хранилище данных. (что в случае добавления столбца или индекса означает использование исключительно моделей EAV, использование ресурсов установки для управления изменениями и принятие индексации Magento).
Хорошее общее практическое правило: если вы изменяете или добавляете некоторые основные функции Magento (продукты, обзоры и т. Д.), Избегайте прямого изменения структуры базы данных, если вы не готовы тщательно управлять ею во время обновления.
Если вы создаете новые объекты и функциональные возможности, используйте любой SQL, который вы хотите создать, и изменяйте свои таблицы через установочные ресурсы. Если вы посмотрите на файлы установщика / обновления, вы увидите, что основная команда Magento делает это самостоятельно.