目录
这个附录和下一个附录介绍在PostgreSQL发布的contrib
目录中能找到的模块。包括移植工具、分析工具和插件特性,它们不是 PostgreSQL 核心系统的一部分,主要因为只有很少的用户会用到或者是还处于实验阶段。但这不会影响它们的使用。
这个附录覆盖了在contrib
中能找到的扩展和其他服务器插件模块。附录 G覆盖了工具程序。
当从源码发布包编译时,这些组件不会自动被编译,除非编译了“world”目标(见步骤 2)。 可以在已配置的源代码树中的contrib
路径下,通过下面的命令编译安装:
make
make install
或者只在选中模块的子目录下编译和安装。许多模块都有回归测试,可以通过下面的命令在安装之前运行测试:
make check
在安装之前或
make installcheck
一旦你有一个PostgreSQL服务器正在运行。
如果是用的是预打包版的PostgreSQL,这些模块通常可以作为一个单独的子包来获得, 如postgresql-contrib
。
许多模块提供新的用户自定义函数、操作符或数据类型。在已经安装了代码之后,为了使用这些模块,需要在数据库系统中注册新的 SQL 对象。 可以通过执行一个CREATE EXTENSION命令来完成。在一个新的数据库中,你可以简单地
CREATE EXTENSION module_name
;
这个命令把新的 SQL 对象注册在当前数据库中,因此你需要在每一个你希望使用该模块功能的数据库中执行他。
另外,可以在template1
数据库中运行这个命令以便该扩展能被默认地复制到后续创建的数据库中。
对于所有这些模块,CREATE EXTENSION
必须由数据库超级用户运行,除非该模块被视为“trusted”,
在这种情况下,它可以由在当前数据库上具有CREATE
特权的任何用户运行。
受信任的模块将在下面的章节中标识为这样的模块。通常,受信任的模块不能提供对数据库外部函数的访问。
很多模块允许你将它们的对象安装在你选择的一个模式中。要这样做,需要将SCHEMA
加入到schema_name
CREATE EXTENSION
命令中。默认情况下,这些对象将被放置在你的当前创建目标模式中,通常是public
。
不过注意,有一些这样的模块不是这种意义上的“扩展”,而是以某种其他方式被载入到服务器,例如使用shared_preload_libraries方式。每个模块详见其文档。