Foreign data wrappers en Postgres

Quien no se encontro alguna vez con la necesidad de traer algun dato desde un SQL Server a un Postgres…???

Bien, tenia esto:

Un postgres 9.6.5 y un SQL Server 2014 SP2 (12.0.5207.0) todo en 64bits. Y supongamos que tambien tienen un usaurio y clave del SQL Server, asi como el nombre de la tabla, en mi caso daf.

Enconces, empece:

En el Centos con Root (esto es la instalacion, no lo hagan si ya lo tienen):

    • yum install postgresql96-server
    • yum install freetds freetds-devel
    • yum install postgresql96-libs postgresql96-devel
    • firewall-cmd –permanent –add-port=5432/tcp
    • firewall-cmd –reload

En el Centos con Postgers (esto es la instalacion, no lo hagan si ya lo tienen):

    • /usr/pgsql-9.6/bin/initdb -E=UTF-8 -U postgres -A trust -W -D /bases_postgres/data
    • vi postgresql.conf
    • vi pg_hba.conf
    • /usr/pgsql-9.6/bin/pg_ctl -D /bases_postgres/data start

En el Centos con Root:

    • export TDS_FDW_VERSION=”1.0.8″
    • wget https://github.com/tds-fdw/tds_fdw/archive/v${TDS_FDW_VERSION}.tar.gz -O tds_fdw-${TDS_FDW_VERSION}.tar.gz
    • tar -xvzf tds_fdw-${TDS_FDW_VERSION}.tar.gz
    • cd tds_fdw-${TDS_FDW_VERSION}
    • PATH=/usr/pgsql-9.6/bin:$PATH make USE_PGXS=1
    • PATH=/usr/pgsql-9.6/bin:$PATH make USE_PGXS=1 install
    • ping sqlserver
    • telnet sqlserver 1433
    • tsql -S sqlserver -U fdw

En el PGADMIN con Postgres:

    • CREATE EXTENSION tds_fdw;
    • create server tds_testserver foreign data wrapper tds_fdw options (servername ‘sqlserver’, port ‘1433’, database ‘diego_test_fdw’, tds_version ‘4.2’, character_set ‘UTF-8’);
    • create user mapping for postgres server tds_testserver options (username ‘fdw’, password ‘daf’);
    • create foreign table daf (id integer, valor varchar(100) ) server tds_testserver options (table ‘daf’);
    • select * from daf;

Estos pasos se siguieron basados en la union de estas notas:
Noten que hay varios cambios


Posted

in

by