请教一下,如何在Windows下编译tds_fdw,如何确定支持哪个PG版本的?
5条回答 默认 最新
关注引自免费微信小程序:皆我百晓生
在Windows下编译tds_fdw(用于连接SQL Server的PostgreSQL外部数据源)可能需要一些额外的步骤,因为PostgreSQL本身主要在Unix-like系统上运行,但可以通过Cygwin或MSYS2等工具进行编译。这里是一个详细的步骤指南:
-
安装必要的软件:
- 安装Visual Studio Community:选择带有C++的开发工具。
- 安装Cygwin 或 MSYS2:这将提供一个类似Linux的环境,包含GCC、make和其他编译工具。
-
安装PostgreSQL和它的开发包:
- 下载并安装适合Windows的PostgreSQL版本,例如PostgreSQL 14 for Windows。
- 打开命令提示符或MSYS2终端,然后运行以下命令来安装PostgreSQL的开发工具:
pacman -Sy mingw-w64-x86_64-toolchain mingw-w64-x86_64-postgresql-devel
对于Cygwin,你需要执行:
setup-x86_64.exe -P mingw64-gcc-g++, mingw64-make, mingw64-pgsql-devel -
获取tds_fdw源码:
- 从GitHub克隆tds_fdw仓库:
git clone https://github.com/tds_fdw/tds_fdw.git - 进入到tds_fdw目录:
cd tds_fdw
- 从GitHub克隆tds_fdw仓库:
-
配置编译环境:
- 在Cygwin或MSYS2环境中,创建一个新的环境变量指向PostgreSQL的include和lib目录。例如,在MSYS2中,编辑~/.bashrc文件,并添加以下内容:
export PG_CONFIG=/mingw64/bin/pg_config export PATH=$PATH:/mingw64/bin export PKG_CONFIG_PATH=/mingw64/lib/pkgconfig export C_INCLUDE_PATH=/mingw64/include/postgresql export CPLUS_INCLUDE_PATH=/mingw64/include/postgresql export LIBRARY_PATH=/mingw64/lib source ~/.bashrc
在Cygwin中,修改~/.bash_profile:
export PG_CONFIG=/usr/bin/pg_config export PATH=$PATH:/usr/bin export PKG_CONFIG_PATH=/usr/lib64/postgresql/*/libexec/perl5/x86_64-linux-gnu/perllocal/man/man3 export C_INCLUDE_PATH=/usr/include/postgresql export CPLUS_INCLUDE_PATH=/usr/include/postgresql export LIBRARY_PATH=/usr/lib64/postgresql/* source ~/.bash_profile - 在Cygwin或MSYS2环境中,创建一个新的环境变量指向PostgreSQL的include和lib目录。例如,在MSYS2中,编辑~/.bashrc文件,并添加以下内容:
-
编译tds_fdw:
- 在tds_fdw目录下,运行以下命令进行编译:
make
如果遇到依赖缺失的问题,根据错误信息使用相应包管理器安装缺失的库。
- 在tds_fdw目录下,运行以下命令进行编译:
-
安装tds_fdw扩展:
- 登录到PostgreSQL数据库服务器:
psql -U <username> -d <database> - 创建一个新扩展:
CREATE EXTENSION IF NOT EXISTS tds_fdw;
注意替换
<username>和<database>为实际的用户名和数据库名。 - 登录到PostgreSQL数据库服务器:
-
测试连接:
- 确保tds_fdw配置正确后,可以尝试连接到SQL Server:
SELECT * FROM foreign_server_name.server_name.schema_name.table_name;
替换
foreign_server_name、server_name、schema_name和table_name为实际值。 - 确保tds_fdw配置正确后,可以尝试连接到SQL Server:
关于支持的PostgreSQL版本,tds_fdw通常会与PostgreSQL的最新稳定版兼容。你可以在其GitHub仓库的README文件中查看官方推荐的兼容性信息。如果要确保兼容性,建议使用tds_fdw仓库中的
requirements.txt文件列出的依赖项,并且尽可能使用与之匹配的PostgreSQL版本。如果遇到问题,可以尝试回滚到较旧的tds_fdw版本,或者查阅其GitHub上的 issues 和 pull requests 来了解可能的解决方案。解决 无用评论 打赏 举报 编辑记录-