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

PostgreSQL创建addme扩展报错:无安装脚本及0.0.1版本更新路径

解决PostgreSQL扩展"addme"创建报错的方案

报错核心原因

PostgreSQL找不到版本为0.0.1的addme扩展对应的安装脚本,也没有定义到该版本的更新路径,本质是扩展的文件结构不符合PostgreSQL扩展规范,或者文件未放置到正确的系统目录中。

具体解决步骤

1. 构建符合规范的扩展文件

PostgreSQL扩展必须包含两个核心文件(针对0.0.1版本):

  • addme.control:扩展元数据配置文件,用于定义扩展的基础信息
  • addme--0.0.1.sql:对应版本的安装脚本,包含扩展所有对象的创建逻辑

示例文件内容

  • addme.control 示例:
comment = '自定义加法功能扩展'
default_version = '0.0.1'
relocatable = true
# 如果扩展包含C语言编写的模块,需要添加module_pathname = '$libdir/addme',纯SQL扩展可省略
  • addme--0.0.1.sql 示例(以创建加法函数为例):
CREATE OR REPLACE FUNCTION addme(a integer, b integer)
RETURNS integer AS $$
BEGIN
    RETURN a + b;
END;
$$ LANGUAGE plpgsql;
COMMENT ON FUNCTION addme(integer, integer) IS '计算两个整数的和';

2. 将扩展文件放置到正确目录

首先查询PostgreSQL的扩展目录路径:

SELECT setting FROM pg_settings WHERE name = 'sharedir';

返回的路径下的extension子目录(比如/usr/share/postgresql/16/extension/)就是目标位置,将addme.control和addme--0.0.1.sql复制到该目录,确保文件权限允许PostgreSQL进程读取(一般设置为644即可)。

3. 验证并创建扩展

重启PostgreSQL服务(确保新文件被加载),然后执行创建命令:

CREATE EXTENSION addme;

创建成功后即可使用扩展中的对象,比如调用示例函数:

SELECT addme(2, 3);

4. 版本更新路径配置(可选)

如果后续需要从旧版本升级到0.0.1,需要创建升级脚本(比如addme--0.0.0--0.0.1.sql),写入版本间的变更逻辑,同时在addme.control中添加update_path字段定义升级路径,示例:

update_path = '0.0.0--0.0.1'

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 14:51:58