Мы активно развиваем модули, и когда мы подталкиваем изменения к нашему производственному сайту, обычно требуется несколько изменений конфигурации. Было бы хорошо автоматизировать это … мысли?
Не уверен, что это все еще актуально, но если вы имеете в виду изменения в system -> config, то гораздо лучше использовать такие узлы config.xml вместо того, чтобы писать обновление базы данных.
Magneto обрабатывает таблицу core_config_data
в глобальной структуре XML, поэтому вы можете просто изменить структуру XML, не используя таблицу db для внесения изменений в конфигурацию системы.
Вот небольшой пример:
<config> <stores> <french> <design> <theme> <default>french</default> <theme> </design> </french> </stores> <websites> <base> <design> <theme> <default>english</default> <theme> </design> </base> </websites> </config>
по<config> <stores> <french> <design> <theme> <default>french</default> <theme> </design> </french> </stores> <websites> <base> <design> <theme> <default>english</default> <theme> </design> </base> </websites> </config>
по<config> <stores> <french> <design> <theme> <default>french</default> <theme> </design> </french> </stores> <websites> <base> <design> <theme> <default>english</default> <theme> </design> </base> </websites> </config>
по<config> <stores> <french> <design> <theme> <default>french</default> <theme> </design> </french> </stores> <websites> <base> <design> <theme> <default>english</default> <theme> </design> </base> </websites> </config>
по<config> <stores> <french> <design> <theme> <default>french</default> <theme> </design> </french> </stores> <websites> <base> <design> <theme> <default>english</default> <theme> </design> </base> </websites> </config>
В этом примере одно поле конфигурации изменяется для двух областей в Magento. Это определение текущей темы в зависимости от текущего веб-сайта и магазина.
Таким образом, узел <stores />
содержит значения конфигурации для определенного хранилища. Где каждый дочерний элемент имеет имя с кодом хранилища и содержит данные конфигурации в вложенном представлении. А узел <website />
содержит значения конфигурации для определенного веб-сайта. Где каждый дочерний элемент имеет имя с кодом сайта и содержит данные конфигурации в вложенном представлении.
Также имеется доступный узел <default />
для значений конфигурации в глобальной области. Но он будет переопределен <stores />
и <websites />
если конкретное значение относится к области.
Я вношу изменения в конфигурацию только через config.xml, потому что развертывание проекта намного проще, когда вам просто нужно установить его через установщик Magento без внесения изменений в «System -> Config».
Внесите изменения как часть сценария установки или обновления в директорию «sql» вашего модуля. В файле «config.xml» вашего модуля добавьте номер версии каждого соответствующего изменения, а также запомните узел <config><global><resources><MODULE_setup><setup>
.
Поскольку сценарий запускается в контексте Magento, у вас есть доступ ко всем нормальным функциям, обновления не обязательно должны быть в форме команд SQL.