我们正在积极开发模块,当我们将更改推送到生产站点时,通常需要进行一些配置更改。自动化这个会很好......想法?
2 回答
不确定它是否仍然是实际的,但是如果您的意思是更改系统 -> 配置,那么使用这样的 config.xml 节点而不是编写数据库升级会更好。
Magneto 将core_config_data
table 处理为全局 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 安装程序安装项目而不在“系统 - > 配置”中进行更改时,部署项目要容易得多。
在模块的“sql”目录中将更改作为安装或升级脚本的一部分进行。在模块的“config.xml”文件中,增加每个匹配更改的版本号,并记住填写<config><global><resources><MODULE_setup><setup>
节点。
因为脚本是在 Magento 的上下文中运行的,所以您也可以访问所有正常功能,因此更新不必采用 SQL 命令的形式。