目标:解决 Spring-AI extension "hstore" is not available 等错误
宝塔PostgreSQL 软件商店安装没有这些环境很坑👊、没事的就是有问题解决问题😊
适用系统:Linux(如 CentOS、OpenCloudOS、Ubuntu 等)
适用环境:通过 宝塔面板 安装的 PostgreSQL
🔍 第一步:确认 PostgreSQL 版本
使用这个命令进入对应的数据库 可以查看对应的版本 我的数据库数 ai_rag
bash
psql -U postgres -d ai_rag

📌 记下版本号(如
16.1),后续需下载完全一致的源码。
📥 第二步:下载对应版本的 PostgreSQL 源码
bash
cd /tmp
# 替换为你的实际版本,例如 16.1
wget https://ftp.postgresql.org/pub/source/v16.1/postgresql-16.1.tar.gz
tar -zxvf postgresql-16.1.tar.gz
cd postgresql-16.1
⚙️ 第三步:获取原始编译参数并执行 configure
bash
# 查看宝塔 PostgreSQL 的编译参数
/www/server/pgsql/bin/pg_config --configure
示例输出:

执行 configure(去掉单引号,直接使用参数)
bash
./configure --prefix=/www/server/pgsql --without-readline
✅ 此步骤不会重新安装 PostgreSQL ,仅生成
contrib编译所需的Makefile.global文件。
🛠️ 第四步:编译并安装 contrib 扩展
方式 A:只安装 hstore(推荐先试这个、如果只是缺这个的话)
bash
cd contrib/hstore
make
make install
成功截图

方式 B:一次性安装所有常用 contrib 扩展(推荐长期使用)
⚠️ 注意:这个不一定会成功 可能会导致拓展没有成功比如 uuid-oss
bash
cd /tmp/postgresql-16.1/contrib
make all
make install
✅ 第五步:验证扩展是否安装成
1. 检查文件是否存在
bash
ls /www/server/pgsql/share/extension/hstore.control
ls /www/server/pgsql/lib/hstore.so

2. 在数据库中启用扩展
bash
-- 连接到你的数据库(如 ai_rag)
psql -U postgres -d ai_rag
-- 创建扩展(无报错即成功)
CREATE EXTENSION IF NOT EXISTS hstore;

3.✅ 验证最终结果
bash
SELECT name, default_version FROM pg_available_extensions WHERE name = 'hstore';

🧪 第六步:重启应用验证
现在你的 Spring Boot 应用应该能正常启动,不再报:
bash
ERROR: extension "hstore" is not available
📝 注意事项
| 项目 | 说明 |
|---|---|
| 版本必须严格一致 | 源码版本 ≠ 运行版本 → .so 不兼容 → 数据库崩溃 |
| 无需重新编译主程序 | 只需 configure,不需要 make && make install 主程序 |
| 宝塔用户常见问题 | 宝塔默认不装 contrib,需手动补全 |
| 权限问题 | make install 需要 root 权限,记得加 sudo |
如果UUID创建报错参考 PostgreSQL 安装UUID