Чтобы перенести все изменения во все среды, я использую сценарии обновления базы данных. Я использую их для создания разных экземпляров (клиент, налоговые настройки и т. д.), но обычно для переноса статических блоков и настроек конфигурации.
Для миграции статических блоков:
<?php
$block = Mage::getModel('cms/block');
$data = array(
'title' => 'Block title',
'identifier' => 'block_identifier',
'content' => 'block content',
'is_active' => 1,
'stores' => array(0 => Mage_Core_Model_App::ADMIN_STORE_ID),
);
$block->addData($data);
$block->save();
?>
Для миграции настроек:
<?php
Mage::getModel('core/config')->saveConfig('design/theme/default', 'theme');
?>
Я знаю, что мы можем изменить настройки Magento через config.xml:
<default>
<general>
<store_information>
<name>My Store</name>
</store_information>
<content_staging>
<block_frontend_stub>home</block_frontend_stub>
</content_staging>
</general>
</default>
Но, насколько я понимаю, мы можем изменить настройки таким образом, только если пути : общее/информация_магазина/имя
и
общие/content_staging/block_frontend_stub
не существует в БД или их значения равны NULL, если значение не NULL, мы не можем изменить его через xml. Я протестировал его в своей локальной среде и думаю, что я прав, но не могу найти код в Magento, который отвечает за настройку конфигурации через xml.
Я прав?
Не могли бы вы показать мне часть кода, которая за это отвечает? И каковы ваши лучшие методы миграции для Magento? Может я чего-то не знаю :)