jueves, 9 de febrero de 2017

Ejemplo 2017-02: Migrar geometry de PostGIS a SQLServer.

Resumen
Migrar información geoespacial desde PostGIS a SQLServer.

Descripción
En uno de los proyectos que estoy involucrado, se requería migrar algunas tablas de una base de datos PostGIS (PostgreSQL) hacia nuestro servidor de SQLServer.

En sí, la complejidad radica al intentar pasar los datos geospaciales (los campos del tipo geometry). En internet encontré sugerencias de exportar en un dump, para luego importarlo. O, emplear herramientas de terceros para realizar dicha migración.

Pero opté por crear un pequeño programa/script en Groovy. En donde se recupera el campo orignal como texto (ST_AsText(the_geom) the_geom_import). Luego, se guarda como cadena en la nueva tabla. Finalmente, se genera el valor correspondiente (the_geom = geometry::STGeomFromText(the_geom_import,4326)).


Bibliografía
http://docs.groovy-lang.org/latest/html/api/groovy/sql/Sql.html
https://www.simple-talk.com/sql/t-sql-programming/introduction-to-sql-server-spatial-data/

Configuración
Groovy 2.4.8
JDK 8
SQLServer 2012