You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Magento:如何将店铺配置迁移至默认作用域?

解决配置项跨作用域迁移的SQL方案

首先必须提醒你:操作前一定要备份数据库,SQL写入/删除操作不可逆,备份好才能安心折腾!

咱们一步步来:

1. 先确认要迁移的数据

先跑这条查询,看看scope_id=1下到底有哪些配置项,心里有数:

SELECT * FROM core_config_data WHERE scope_id = 1;

2. 检查默认作用域是否有重复配置

避免复制过去后出现冲突,先查一下scope_id=0里有没有和scope_id=1相同path的配置:

SELECT c1.path 
FROM core_config_data c1
JOIN core_config_data c2 ON c1.path = c2.path
WHERE c1.scope_id = 1 AND c2.scope_id = 0;

如果有返回结果,说明这些配置在默认作用域已经存在,你得决定是跳过还是覆盖。

3. 复制scope_id=1的配置到默认作用域

  • 如果想跳过重复配置(不覆盖已有内容):
INSERT IGNORE INTO core_config_data (scope, scope_id, path, value)
SELECT 'default', 0, path, value
FROM core_config_data
WHERE scope_id = 1;
  • 如果要覆盖默认作用域的重复配置:
REPLACE INTO core_config_data (scope, scope_id, path, value)
SELECT 'default', 0, path, value
FROM core_config_data
WHERE scope_id = 1;
  • 确认没有重复,直接复制:
INSERT INTO core_config_data (scope, scope_id, path, value)
SELECT 'default', 0, path, value
FROM core_config_data
WHERE scope_id = 1;

4. 删除scope_id=1的旧配置

复制成功后,就可以删掉原来的配置了:

  • 如果你要删除scope_id=1下所有配置:
DELETE FROM core_config_data WHERE scope_id = 1;
  • 如果你只想删除刚才复制过去的那些(scope_id=1还有其他要保留的配置):
DELETE FROM core_config_data 
WHERE scope_id = 1 
AND path IN (SELECT path FROM core_config_data WHERE scope_id = 0);

内容的提问来源于stack exchange,提问作者user2120643

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 09:41:48