Php Magento:如何将配置更改从开发环境迁移到生产环境?
我们正在积极开发模块,当我们将更改推送到生产现场时,通常需要进行几个配置更改。将此…想法自动化会很好吗?将更改作为模块“sql”目录中安装或升级脚本的一部分。在模块的“config.xml”文件中,增加每个匹配更改的版本号,还记得填写节点Php Magento:如何将配置更改从开发环境迁移到生产环境?,php,deployment,magento,e-commerce,database-versioning,Php,Deployment,Magento,E Commerce,Database Versioning,我们正在积极开发模块,当我们将更改推送到生产现场时,通常需要进行几个配置更改。将此…想法自动化会很好吗?将更改作为模块“sql”目录中安装或升级脚本的一部分。在模块的“config.xml”文件中,增加每个匹配更改的版本号,还记得填写节点 因为脚本是在Magento的上下文中运行的,您也可以访问所有正常功能,所以更新不必以SQL命令的形式进行。不确定它是否仍然是实际的,但是如果您是指对system->config进行更改,那么使用此类config.xml节点而不是编写数据库升级就更好了 Magn
因为脚本是在Magento的上下文中运行的,您也可以访问所有正常功能,所以更新不必以SQL命令的形式进行。不确定它是否仍然是实际的,但是如果您是指对system->config进行更改,那么使用此类config.xml节点而不是编写数据库升级就更好了 Magnetor将
core\u config\u data
表处理为全局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中的两个作用域更改了一个配置字段。它是根据当前网站和商店对当前主题的定义
因此,
节点包含特定存储的配置值。其中,每个子元素都使用存储代码命名,并包含嵌套视图中的配置数据。而
节点包含特定网站的配置值。其中,每个子元素都使用网站代码命名,并在嵌套视图中包含配置数据
此外,还有用于全局范围内配置值的
节点。但是,如果某个特定值用于某个范围,则它将被
和
覆盖
我仅通过config.xml对配置进行更改,因为当您只需要通过Magento安装程序安装项目而不需要在中进行更改时,部署项目会容易得多
“系统->配置”。除非Magento在部署时有一些非常奇怪的要求,否则我会说这可能是一个复制品。基本上,phing应该会帮助你。我同意你的评论,但会更进一步,即“更新不应该以SQL命令的形式”。我没有遇到任何不能通过Magento的配置结构执行的DDL或DML语句。版本控制容易得多。据我所知,这种技术只能用于不存在的默认值或数据库表
core\u config\u data
中的NULL
。如果值存在,我们需要编写数据库升级。我说得对吗?@v.kondratyuk,是的,你说得对。实际上,这种方法允许您指定每个商店/网站/默认范围的默认数据集,管理员用户可以在以后更改这些数据集。如果您在团队中的开发人员或qa部署之间交换代码,那么通过XML文件迁移配置总是很好的。如果开发人员或其他用户更改了DB中的某个值,您不应该通过DB升级来影响此更改,因为它可能会影响团队中其他开发人员的调试会话。