扩展生成故障排除

来自 PostgreSQL wiki
跳至导航跳至搜索

通常生成扩展只需以下命令

make
make install
make installcheck

随后用 SQL 命令在数据库中创建扩展(替换foobar为扩展名)

CREATE EXTENSION foobar;

故障排除

如果你遇到类似错误

"Makefile", line 8: Need an operator

你需要使用 GNU make,它可能已安装在你的系统中,名为 gmake

gmake
gmake install
gmake installcheck

如果你遇到类似错误

make: pg_config: Command not found

确保已安装 pg_config 并位于你的路径中。如果使用 RPM 等包管理系统安装 PostgreSQL,请确保也已安装 -devel 包。如有必要,告诉生成进程在哪里可以找到它

env PG_CONFIG=/path/to/pg_config make && make installcheck && make install

如果你遇到类似错误

ERROR:  must be owner of database regression

你需要用超级用户(例如默认“postgres”超级用户)来运行测试套件

make installcheck PGUSER=postgres

扩展安装后,可以将其添加到数据库中。如果你运行的是 9.1.0 或更高版本的 PostgreSQL,只需以超级用户身份连接到数据库并运行(替换foobar为扩展名)

CREATE EXTENSION foobar;

如果你已将集群升级到 PostgreSQL 9.1,并且已经安装了扩展,则可以使用以下命令将其升级到正确打包的扩展

CREATE EXTENSION foobar FROM unpackaged;

对于低于 9.1.0 版本的 PostgreSQL,你需要运行安装脚本当(替换foobar为扩展名)

psql -d mydb -f /path/to/pgsql/share/contrib/foobar.sql

如果你想将该扩展及其所有支持对象安装到特定架构中,请使用 PGOPTIONS 环境变量来指定架构,如下所示

PGOPTIONS=--search_path=extensions psql -d mydb -f foobar.sql

答谢

本故障排除指南最初由David E. Wheeler撰写。从他的主机名扩展 README 中复制。