Ykang 2024-04-11 17:07 采纳率: 0%
浏览 64

请教一下,如何在Windows下编译tds_fdw,如何确定支持哪个PG版本的?

请教一下,如何在Windows下编译tds_fdw,如何确定支持哪个PG版本的?

  • 写回答

5条回答 默认 最新

  • 专家-赤兔[在线] 优质创作者: 编程框架技术领域 2024-04-11 17:08
    关注

    引自免费微信小程序:皆我百晓生

    在Windows下编译tds_fdw(用于连接SQL Server的PostgreSQL外部数据源)可能需要一些额外的步骤,因为PostgreSQL本身主要在Unix-like系统上运行,但可以通过Cygwin或MSYS2等工具进行编译。这里是一个详细的步骤指南:

    1. 安装必要的软件:

    2. 安装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
      
    3. 获取tds_fdw源码:

      • 从GitHub克隆tds_fdw仓库:git clone https://github.com/tds_fdw/tds_fdw.git
      • 进入到tds_fdw目录:cd tds_fdw
    4. 配置编译环境:

      • 在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
      
    5. 编译tds_fdw:

      • 在tds_fdw目录下,运行以下命令进行编译:
        make
        

      如果遇到依赖缺失的问题,根据错误信息使用相应包管理器安装缺失的库。

    6. 安装tds_fdw扩展:

      • 登录到PostgreSQL数据库服务器:
        psql -U <username> -d <database>
        
      • 创建一个新扩展:
        CREATE EXTENSION IF NOT EXISTS tds_fdw;
        

      注意替换 <username><database> 为实际的用户名和数据库名。

    7. 测试连接:

      • 确保tds_fdw配置正确后,可以尝试连接到SQL Server:
        SELECT * FROM foreign_server_name.server_name.schema_name.table_name;
        

      替换 foreign_server_nameserver_nameschema_nametable_name 为实际值。

    关于支持的PostgreSQL版本,tds_fdw通常会与PostgreSQL的最新稳定版兼容。你可以在其GitHub仓库的README文件中查看官方推荐的兼容性信息。如果要确保兼容性,建议使用tds_fdw仓库中的requirements.txt文件列出的依赖项,并且尽可能使用与之匹配的PostgreSQL版本。如果遇到问题,可以尝试回滚到较旧的tds_fdw版本,或者查阅其GitHub上的 issues 和 pull requests 来了解可能的解决方案。

    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 4月11日