CKAN2.9.5执行db init报SOLR schema版本1.6不受支持错误
问题说明
- 部署环境:CentOS 9 Stream、Python 3.8.13,采用源码方式安装CKAN 2.9.5,前置依赖Solr 8.11.1、PostgreSQL 14均已完成安装且服务状态正常
- 触发场景:参照官方文档执行部署流程,运行数据库初始化命令
ckan -c /etc/ckan/default/ckan.ini db init时抛出运行错误 - 错误日志:
File "/usr/lib/ckan/default/src/ckan/ckan/lib/search/__init__.py", line 391, in check_solr_schema_version raise SearchError('SOLR schema version not supported: %s. Supported' ckan.lib.search.common.SearchError: SOLR schema version not supported: 1.6. Supported versions are [2.8, 2.9, 2.10]
- 错误核心:运行时检测到当前Solr服务加载的schema版本为1.6,不在CKAN 2.9.5兼容的[2.8, 2.9, 2.10]版本范围内,初始化流程终止。
排查思路
按优先级依次排查以下节点:
- 校验为CKAN创建的Solr核心是否替换了CKAN官方提供的对应版本schema文件,90%以上的同类问题都是因为Solr核心使用初始化时自动生成的默认低版本schema,未替换为CKAN适配的配置
- 检查Solr核心conf目录下实际生效的schema配置文件(
schema.xml或managed-schema)内标注的版本号,确认加载的配置文件实际版本 - 核对ckan.ini配置文件中
solr_url配置项的地址,确认指向的是为CKAN单独创建的核心,而非Solr自带的默认核心或其他业务使用的旧核心 - 检查Solr服务配置重载状态,确认修改配置后已经完成核心重载或服务重启,未加载缓存的旧配置
解决步骤
- 定位CKAN 2.9.5源码包内自带的适配版本schema文件,默认源码安装路径下的文件位置为
/usr/lib/ckan/default/src/ckan/ckan/config/solr/schema.xml - 停止Solr服务,进入为CKAN创建的Solr核心的配置目录(默认路径通常为
/var/solr/data/ckan/conf/,如果自定义了核心存储路径以实际路径为准),将目录下原有自动生成的managed-schema文件备份后删除 - 将第一步找到的CKAN适配版schema.xml复制到上述Solr核心的conf目录下,修改文件权限为Solr运行用户(默认为solr用户)可读,避免服务启动时因权限不足加载配置失败
- 启动Solr服务,可通过Solr管理控制台触发CKAN核心的配置重载,或直接重启Solr服务保证所有配置生效
- 验证版本匹配:查看复制后的schema.xml文件头部的版本标识,确认版本在CKAN支持的范围内,也可直接通过Solr核心状态查询接口确认加载的schema版本正确
- 重新执行数据库初始化命令
ckan -c /etc/ckan/default/ckan.ini db init即可正常完成初始化流程
注意:不要通过修改CKAN源码中版本校验逻辑的方式绕过报错,schema版本不匹配会导致后续全文检索功能异常、索引构建失败、搜索结果错乱等隐性问题。
内容的提问来源于stack exchange,提问作者Obirieni Simeo
相关产品推荐
相关产品推荐

