すべての変更をすべての環境に移行するには、データベースアップグレードスクリプトを使用します。私はそれらを使用してさまざまなインスタンス(顧客、税設定など)を作成しますが、通常は静的ブロックと構成設定を移行します。
静的ブロックを移行するには:
<?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経由。私は自分のローカル環境でそれをテストしました、そして私は正しいと思いますが、xmlを介して構成を設定する責任があるMagentoでコードを見つけることができません。私は正しいですか?
それを担当するコードの部分を見せてくれませんか?そして、Magentoの移行のベストプラクティスは何ですか?多分私は何かを知りません:)