升级Umbraco 14添加内容报错:An item with the same key has already been added. Key: title
修复Umbraco 14升级后添加内容报错“An item with the same key has already been added. Key: title”
问题原因
这个报错的核心原因是:你的Umbraco数据库中,某个内容类型(ContentType)下存在重复的属性别名(property alias)title。Umbraco 14对内容类型属性的别名唯一性校验更为严格,升级后触发了这个冲突。
具体修复步骤
1. 先备份数据库
操作数据库前必须完整备份,避免操作失误导致数据丢失。
2. 定位具体重复的属性记录
根据你之前的查询结果,找到重复title属性对应的contentTypeId,执行以下SQL获取所有重复的行:
SELECT id, contentTypeId, alias, createDate, dataTypeId FROM [cmsPropertyType] WHERE contentTypeId = [你的contentTypeId] -- 替换成查询结果里的contentTypeId AND alias = 'title'
通过结果中的createDate(创建时间)或关联的dataTypeId(数据类型),判断哪条记录是当前正在使用的(通常保留最新创建的那条),其余为重复冗余记录。
3. 删除重复的属性记录
确认要删除的冗余记录ID后,执行删除SQL(务必只删冗余记录,保留正在使用的那条):
DELETE FROM [cmsPropertyType] WHERE id = [冗余记录的ID]
建议逐条删除,每删一条后重新执行步骤2的查询,确保重复记录被清理干净
4. 清理Umbraco缓存
删除网站根目录下App_Data/TEMP文件夹内的所有文件,随后重启网站应用池或服务器。
5. 验证修复效果
重新进入Umbraco后台,尝试添加新内容,检查报错是否消失。
注意事项
- 生产环境操作前,一定要在测试环境先验证整个修复流程
- 后续升级Umbraco版本前,建议运行后台的**健康检查(Health Check)**工具,提前发现这类属性重复、数据不一致问题
内容的提问来源于stack exchange,提问作者Menahem Gil
相关产品推荐
相关产品推荐

