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

运行AGE的PG installcheck时报错:不支持WITH OIDS声明的表,如何解决?

解决AGE扩展installcheck时的"tables declared WITH OIDS are not supported"错误

核心原因

PostgreSQL 12及以上版本默认禁用了WITH OIDS建表语法,且移除了系统表OID的默认生成逻辑。你遇到的问题是当前使用的AGE版本与PostgreSQL版本不兼容,或编译AGE时未适配高版本PG的特性。

具体解决步骤

1. 版本兼容性校验

先确认AGE和PostgreSQL的版本匹配:

  • 查看PostgreSQL版本:
    ~/age_project/postgres/bin/postgres --version
    
  • 查看AGE版本/提交记录:
    cd ~/new-age/age && git log --oneline -n 1
    

注意:AGE 1.1.0及以上版本才支持PostgreSQL 12-15,旧版AGE仅支持到PG 11。如果版本不匹配,要么升级AGE,要么降级PostgreSQL。

2. 重新编译并安装AGE(适配高版本PG)

如果AGE版本本身支持当前PG,先清理旧编译产物,重新编译:

cd ~/new-age/age
make clean
# 用对应PG的pg_config编译,强制使用PGXS框架
make PG_CONFIG=~/age_project/postgres/bin/pg_config USE_PGXS=1
make PG_CONFIG=~/age_project/postgres/bin/pg_config install

3. 手动移除AGE源码中的WITH OIDS(备选方案)

如果上述步骤无效,可直接修改AGE源码中使用WITH OIDS的部分:

  • 找到AGE源码中所有包含WITH OIDS的SQL文件(比如src/age--*.sql系列文件)
  • 删除所有WITH OIDS关键字,保存后重新编译安装

4. 清理临时实例,重新运行installcheck

先清理之前生成的临时测试实例,避免残留问题:

rm -rf ~/new-age/age/regress/instance

再重新执行测试命令:

make PG_CONFIG=~/age_project/postgres/bin/pg_config installcheck

内容的提问来源于stack exchange,提问作者Marcos Silva

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 09:35:32