我正在尝试运行PostgreSQL文档中的演示后台工作者示例。我是从https://github.com/postgres/postgres/tree/master/src/test/modules/worker_spi
下载的我能够编译代码并创建以下文件: “worker_spi.o”和“worker_spi.so”
然后我运行了worker_spi - 1.0.sql: - \ i worker_spi - 1.0.sql。 最后,在连接到数据库之后,我创建了一个SQL文件中指定的扩展。但是,我认为它不起作用。我是否需要将此“.so”文件放在其他目录中?非常感谢任何帮助。
答案 0 :(得分:1)
是的,.so文件需要安装到PKGLIBDIR中。
你可以通过运行" pg_config"来找出PKGLIBDIR是什么。例如,在带有PostgreSQL 9.4的Ubuntu系统上,pg_config将返回:
PKGLIBDIR = /usr/lib/postgresql/9.4/lib
此外,worker_spi - 1.0.sql应安装到SHAREDIR / extension中。在带有PostgreSQL 9.4的Ubuntu系统上,从pg_config返回的SHAREDIR是:
SHAREDIR = /usr/share/postgresql/9.4
安装worker_spi - 1.0.sql的目录是:
/usr/share/postgresql/9.4/extension
将worker_spi - 1.0.sql和worker_spi.so文件安装到正确的位置后,您应该能够执行:
CREATE EXTENSION worker_spi;
从任何数据库并安装扩展程序。
使用" \ i worker_spi - 1.0.sql"不会将其作为扩展名安装,而是作为一组独立对象安装。