punkstar/mageconfigsync

此软件包已被废弃,不再维护。没有建议的替代软件包。

一个辅助存储 Magento 配置到版本控制中的工具。

0.5.0-beta.1 2016-09-15 15:51 UTC

This package is auto-updated.

Last update: 2022-01-13 00:07:17 UTC


README

这是一个工具,旨在允许团队将 Magento(1.x 和 2.x 受支持)配置保持在版本控制之下,消除在追踪可能相关的配置问题时出现的不确定性。

image

文件语法

配置值存储在 YAML 文件中。文件的格式如下

environment:
    scope_key:
       path: value

例如

production:
    default:
        dev/debug/template_hints: 0
development:
    default:
        dev/debug/template_hints: 1
    stores-1:
        currency/options/base: GBP
        dev/restrict/allow_ips: null

上述内容将

  • 禁用产品上的模板提示;
  • 在开发环境中启用模板提示;
  • 将货币设置为英镑(GBP)在 ID 为 #1 的商店作用域内;
  • 确保允许的开发 IP 地址从网站继承到商店 #1。

有效的范围键是

  • 默认
  • stores-$id
  • websites-$id

使用方法

php bin/mageconfigsync --help

大多数命令如果不在 Magento 目录中运行,则可选参数为 --magento-root,如果使用了 --env 选项,则用来描述当前配置的环境。

导出

php bin/mageconfigsync dump --help

导出命令将当前配置的内容作为 YAML 输出到标准输出。指定 --env 选项,则方便地将其添加为第一个键。

加载

php bin/mageconfigsync load --help

加载命令将数据库与文件内容同步。任何更改的行将被输出到标准错误。使用 --env 选项将确定加载 YAML 文件的哪个部分。

差异

php bin/mageconfigsync diff --help configuration_file.yaml

示例场景

得益于 symfony/yaml 组件,我们可以使用 YAML 提供的所有技巧,包括合并键。考虑以下文件,config.yml

prod:
  default: &prod_global
    currency/options/base: GBP
    dev/debug/template_hints: 0

dev:
  default:
    <<: *prod_global
    dev/debug/template_hints: 1

我们的目标是确保货币始终设置为 GBP,无论环境如何,但模板提示仅应在本地环境中启用。

在我们的开发机器上,我们可以拉取最新的更改,并运行以下命令以获取我们想要的配置

php bin/mageconfigsync load --magento-root ~/Sites/magento --env dev config.yml

我们还可以将此 config.yml 作为我们部署过程的一部分。考虑以下工作流程

// Take a backup of the configuration, incase we need to restore as part of a rollback
php bin/mageconfigsync dump --env prod > config.yml.pre-deploy

// Give us a diff for the deployment log so we can see what's about to be changed
php bin/mageconfigsync diff --file-env prod config.yml

// Sync the latest configuration changes to prod
php bin/mageconfigsync load --env prod config.yml

恭喜,您的 Magento 配置现在得到了控制,可审计且一致。