7

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

4

2 回答 2

8

不确定它是否仍然是实际的,但是如果您的意思是更改系统 -> 配置,那么使用这样的 config.xml 节点而不是编写数据库升级会更好。

Magneto 将core_config_datatable 处理为全局 XML 结构,因此您可以只更改 XML 结构,而无需使用 db table 来更改系统配置。

这是一个小例子:

<config>
   <stores>
       <french>
          <design>
             <theme>
                 <default>french</default>
             <theme>
          </design>
       </french>
   </stores>
   <websites>
       <base>
          <design>
             <theme>
                 <default>english</default>
             <theme>
          </design>
       </base>
   </websites>
</config>

在此示例中,为 Magento 中的两个范围更改了一个配置字段。它是当前主题的定义,具体取决于当前的网站和商店。

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

全局范围内的配置值也有可用<default />的节点。<stores />但是,<websites />如果特定值适用于范围,它将被覆盖 。

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

于 2011-06-28T10:47:56.790 回答
5

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

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

于 2010-11-17T20:54:04.770 回答