在Windows系统的PostgreSQL中安装temporal_tables与cyanaudit扩展
在Windows上安装PostgreSQL的temporal_tables和cyanaudit扩展方案
我之前在Windows环境下部署PostgreSQL时,也折腾过这两个扩展,踩了好几个坑才搞定,把亲测有效的步骤分享给你,希望能帮到你!
前提准备
首先要确认你的PostgreSQL版本和扩展的兼容情况:
temporal_tables目前支持PostgreSQL 9.6到15版本cyanaudit支持PostgreSQL 10到15版本
另外,安装PostgreSQL时一定要勾选Development Files组件(默认可能没选),不然会缺少编译扩展需要的头文件和库文件。
一、安装temporal_tables扩展
Windows上没有官方预编译包,需要自己编译源码:
- 准备编译环境:
- 安装Visual Studio 2019/2022(社区版就行,要选“C++开发工具”组件)
- 确保PostgreSQL的
bin目录已经添加到系统环境变量PATH中(这样能直接调用pg_config)
- 获取源码:
- 下载
temporal_tables的源码包(直接zip下载即可),解压到本地任意目录
- 下载
- 编译源码:
- 打开Visual Studio的“Developer Command Prompt”(注意要选对应系统位数的,比如64位PG就开x64的命令行)
- 切换到解压后的源码目录,执行:
确认输出的路径是你的PG安装目录,没问题的话继续执行:pg_config
等待编译完成,没报错就成功了nmake /f Makefile.win
- 安装扩展:
- 执行以下命令把编译好的文件复制到PG的系统目录:
nmake /f Makefile.win install
- 执行以下命令把编译好的文件复制到PG的系统目录:
- 启用扩展:
- 登录PostgreSQL数据库(用psql或pgAdmin都行),执行:
如果没有报错,说明安装成功,可以用CREATE EXTENSION temporal_tables;\dx命令查看已安装的扩展
- 登录PostgreSQL数据库(用psql或pgAdmin都行),执行:
二、安装cyanaudit扩展
步骤和temporal_tables类似,同样需要编译源码:
- 准备编译环境:
- 和上面一致,确保有Visual Studio和PG开发组件,
pg_config能正常调用
- 和上面一致,确保有Visual Studio和PG开发组件,
- 获取源码:
- 下载
cyanaudit的源码包,解压到本地目录
- 下载
- 编译源码:
- 打开Visual Studio Developer Command Prompt,切换到源码目录,先设置PG的头文件和库路径(如果
pg_config已经能找到的话,这步可能可以跳过):
(把路径换成你的PG安装目录)set INCLUDE=C:\Program Files\PostgreSQL\14\include;%INCLUDE% set LIB=C:\Program Files\PostgreSQL\14\lib;%LIB% - 然后执行编译命令:
nmake
- 打开Visual Studio Developer Command Prompt,切换到源码目录,先设置PG的头文件和库路径(如果
- 安装扩展:
- 执行安装命令:
nmake install
- 执行安装命令:
- 启用扩展:
- 登录数据库执行:
启用后可以通过CREATE EXTENSION cyanaudit;SELECT * FROM cyanaudit.log;测试审计功能
- 登录数据库执行:
备选方案:用Docker简化操作
如果编译过程太繁琐,可以试试用Windows Docker Desktop:
- 拉取对应版本的PostgreSQL镜像,启动容器时映射数据卷到Windows本地
- 进入容器的终端,用Linux的包管理工具(比如apt)安装
postgresql-server-dev-xx,然后克隆源码编译安装两个扩展 - 这样不用在Windows本地折腾编译环境,也能正常使用扩展功能
如果编译过程中遇到错误,比如版本不兼容、依赖缺失,可以把具体错误信息贴出来,我再帮你排查!
内容的提问来源于stack exchange,提问作者JDaniel
相关产品推荐
相关产品推荐

