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
相关产品推荐
相关产品推荐

