Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/275.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Magento:如何将配置更改从开发环境迁移到生产环境?_Php_Deployment_Magento_E Commerce_Database Versioning - Fatal编程技术网

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

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

我们正在积极开发模块,当我们将更改推送到生产现场时,通常需要进行几个配置更改。将此…想法自动化会很好吗?

将更改作为模块“sql”目录中安装或升级脚本的一部分。在模块的“config.xml”文件中,增加每个匹配更改的版本号,还记得填写节点


因为脚本是在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升级来影响此更改,因为它可能会影响团队中其他开发人员的调试会话。