Para migrar todos los cambios a todos los entornos, utilizo scripts de actualización de base de datos. Los uso para crear instancias diferentes (clientes, ajustes de impuestos, etc.) pero generalmente para migrar bloques estáticos y configuraciones de configuración.Magento: bloques estáticos y migración de configuraciones de configuración
Para migrar bloques estáticos:
<?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();
?>
para migrar la configuración:
<?php
Mage::getModel('core/config')->saveConfig('design/theme/default', 'theme');
?>
Sé que podemos modificar la configuración a través de 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>
Pero en lo como entiendo, podemos modificar la configuración de esa manera solo si las rutas: general/store_informat ion/nombre y
general/content_staging/block_frontend_stub no existe en NULL igual db o sus valores, si el valor no NULL que no puede modificarlo a través de XML. Lo probé en mi entorno local y creo que estoy en lo cierto, pero no puedo encontrar un código en Magento, que es responsable de establecer la configuración a través de xml. ¿Estoy en lo cierto?
¿Puede mostrarme la parte del código que es responsable de ello? ¿Y cuáles son sus mejores prácticas de migración para Magento? Tal vez yo no sé algo :)