Magento: Как перенести изменения конфигурации из среды разработки в производственную?

Мы активно развиваем модули, и когда мы подталкиваем изменения к нашему производственному сайту, обычно требуется несколько изменений конфигурации. Было бы хорошо автоматизировать это … мысли?

Не уверен, что это все еще актуально, но если вы имеете в виду изменения в 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.