Magento:如何将配置更改从开发环境迁移到生产环境?

Nic*_*ick 7 php deployment database-versioning magento e-commerce

我们正在积极开发模块,当我们将更改推送到生产站点时,通常需要进行一些配置更改.很高兴自动化这个...想法?

Iva*_*nyi 8

不确定它是否仍然是实际的,但如果你的意思是更改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>
Run Code Online (Sandbox Code Playgroud)

在此示例中,为Magento中的两个范围更改了一个配置字段.根据当前的网站和商店,是当前主题的定义.

因此<stores />节点包含特定商店的配置值.其中每个子元素都使用商店代码命名,并在嵌套视图中包含配置数据.并且<website />节点包含特定网站的配置值.其中每个子元素都使用网站代码命名,并且在嵌套视图中也包含配置数据.

此外<default />,全局范围内的配置值还有可用节点.但它会被覆盖 <stores />,并<websites />如果一个特定的值是一个范围.

我只通过config.xml对配置进行更改,因为当您只需要通过Magento安装程序安装它而不在"系统 - >配置"中进行更改时,部署项目会容易得多.


clo*_*eek 5

将更改作为模块"sql"目录中的安装或升级脚本的一部分进行.在模块的"config.xml"文件中,增加每个匹配更改的版本号,并记住填写<config><global><resources><MODULE_setup><setup>节点.

由于脚本在Magento的上下文中运行,因此您也可以访问所有常规功能,更新不必采用SQL命令的形式.