【问题标题】:Magento: how to transfer shop settings to the default scope?Magento:如何将商店设置转移到默认范围?
【发布时间】:2018-05-23 08:38:12
【问题描述】:

我的一个店铺设置不正确,很多设置都是在scope_id 1,而不是0。

我需要找到在 scope_id 1 中所做的所有设置并将它们传输(复制)到 scope id 0 中。然后,也许我可以从 scope_id 1 中删除这些设置。

使用哪个 SQL 查询可以做到这一点?

提前感谢所有答案。

【问题讨论】:

  • 在您的图像中,记录被添加到scope_id 0 那么有什么问题?也是scope_id on;ly 不同,还是其他一些值也不同?
  • 很抱歉不清楚。该图像只是表结构的一个示例。当然,其他值是不同的。

标签: php mysql sql magento


【解决方案1】:

您可以通过执行update join 来完成此操作,您将core_config_data 加入到自身并在每个连接的表scope_id 上设置条件,然后您只需删除存储1 的值,这样它们就不会覆盖存储0 个设置:

update core_config_data store0
left join core_config_data store1
on store1.path = store0.path
where store0.scope_id = 0
and store1.scope_id = 1
and store1.value is not null;

在上述更新之后,您可以在运行下面的删除语句之前检查您的 scope=0 值以确保:

delete from core_config_data where scope_id = 1;

【讨论】: