要将所有更改迁移到所有环境,我使用数据库升级脚本。我使用它们来创建不同的实例(客户、税收设置等),但通常用于迁移静态块和配置设置。
迁移静态块:
<?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');
?>
我知道我们可以通过 config.xml 修改 Magento 设置:
<default>
<general>
<store_information>
<name>My Store</name>
</store_information>
<content_staging>
<block_frontend_stub>home</block_frontend_stub>
</content_staging>
</general>
</default>
但据我了解,只有在路径:general/store_information/name
和
general/content_staging/block_frontend_stub
不存在于 db 或它们的值等于 NULL 时,我们才能以这种方式修改设置,如果值不为 NULL,我们无法修改它通过 xml。我在本地环境中对其进行了测试,我认为我是对的,但在 Magento 找不到负责通过 xml 设置配置的代码。我对吗?
你能告诉我负责它的代码部分吗?Magento 的最佳迁移实践是什么?也许我什么都不知道:)