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

Akeneo无法创建新属性 | 错误:该编码已被使用

Akeneo CE新建属性时始终提示“该编码已被使用”的问题排查思路

问题描述

全新安装Akeneo CE服务器后,仅保留安装时自动创建的SKU属性,但无法创建任何新属性——无论使用何种名称、属性类型,始终提示“该编码已被使用”。相关截图:

  • 错误提示:错误提示
  • 属性列表:属性列表

环境信息

  • Akeneo版本:CE 7.0.26
  • 服务器:Debian Server 11(Bullseye)
  • PHP:8.1.23
  • MySQL:8.0.34
  • NodeJS:18.17.1
  • Yarn:1.22.19

已尝试的解决操作

  • 更换不同名称、属性类型尝试创建
  • 安装7.0到7.0.26之间的多个版本,问题未解决
  • 检查服务器日志,无相关错误记录
  • 查看浏览器控制台,无JavaScript报错

排查解决思路

1. 检查数据库属性表的约束与数据

  • 登录MySQL,查询属性表是否存在隐藏的重复编码(包括软删除条目):
    SELECT code, is_deleted FROM pim_catalog_attribute;
    
  • 验证表的唯一约束是否正常:
    SHOW INDEX FROM pim_catalog_attribute WHERE Key_name = 'UNIQ_6438F8B577153098';
    
  • 若存在软删除的重复编码,可清理对应记录:
    DELETE FROM pim_catalog_attribute WHERE is_deleted = 1 AND code = '目标编码';
    

2. 清理并重建Akeneo缓存

  • 执行缓存清理命令:
    php bin/console cache:clear --env=prod
    php bin/console pim:installer:assets --env=prod
    yarn run webpack
    
  • 确保缓存与静态资源目录权限正确:
    chown -R www-data:www-data var/cache public
    chmod -R 775 var/cache public
    

3. 确认属性编码符合规则

Akeneo属性编码仅允许小写字母、数字、下划线,且不能以数字开头。检查输入的编码是否完全符合该规则,避免使用大写字母、特殊字符。

4. 检查数据库字符集与排序规则

  • 查询属性表的字符集配置:
    SHOW CREATE TABLE pim_catalog_attribute;
    
  • 若字符集不是utf8mb4或排序规则不是utf8mb4_unicode_ci,执行修改命令:
    ALTER TABLE pim_catalog_attribute CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
    

5. 重新初始化基础数据

  • 执行数据库初始化命令(注意:此操作会重置数据库,需提前备份数据):
    php bin/console pim:installer:db --env=prod --force
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 21:29:56