Cargar capas en base de datos desde gvSIG 2.1.0

Hola a todos de nuevo.

Hace unos días tuve que corregir algún error que otro en el asistente de exportación a BBDD y acabe tocando mas cosas de las que esperaba, así que aquí estoy contando un poco como ha quedado.

Se me juntaron unas cuantas peticiones…

  • Añadir datos a una tabla ya existente.
  • Que avise si la tabla ya existe antes de intentar crearla.
  • Que sea capaz de validar las geometrías antes de cargarlas en la BBDD y comprobar si alguna esta corrupta.
  • Que presente información al usuario sobre los errores que se producen para que este pueda tomar medidas correctoras.
  • Que no inserte ningún registro en la BBDD si se produce algún error que provoca que se aborte la operación.
  • Que proponga un nombre de tabla a crear basado en el nombre de la tabla que se quiere exportar.
  • No estaba nada claro que era eso de la clave primaria, clarificarlo y permitir elegir un campo de los que ya existan como clave primaria.
  • Que mejore la usabilidad a la hora de introducir los datos de la conexión.
  • Espacios en blanco y mayúsculas en los identificadores
  • Que una vez introducidos los datos de la conexión, bastase con pulsar en siguiente para acabar exportando los datos si no había ningún contratiempo.

Así que con todas estas cosillas en mente rehice casi todo el asistente. Ahora el asistente esta dividido en 6 pasos o paginas.

  1. Opciones sobre los identificadores a usar.

    Nos permite seleccionar dos checks:

    • Uno para indicar que queremos que se utilicen solo minúsculas en los identificadores de campos y tabla.
    • Otro para indicar que no queremos espacios en blancos en los identificadores, y si aparecen que los sustituya por el carácter de subrayado.

    No es que gvSIG no trate bien con las mayúsculas o los espacios en blanco. Lo que pasa es que hay otras aplicación que al interactuar con tablas con blancos o campos en mayúsculas o no lo hacen correctamente o requieren que el usuario vaya escapando esos caracteres lo que se hace mas engorroso.

    Estos dos check aparecen marcados por defecto.

  2. Opciones de conexión.

    Nos pregunta por los parámetros de conexión:

    • Tipo de conexión (JDBC genérica, PostgreSQL,…)
    • Nombre de maquina donde esta el servicio.
    • Puerto en el que esta el servicio.
    • Nombre de la base de datos que queremos usar
    • Usuario
    • Clave

    Aquí también podremos dar un nombre a esta configuración de conexión para poder reutilizarla mas tarde.

  3. Tabla a crear

    Aquí tendremos que elegir entre crear una tabla nueva o añadir los datos a una existente.

    Si los parámetros de conexión indicados en el paso anterior son correctos, nos mostrara la lista de tablas en la base de datos y nos permitirá elegir una a la que añadirlos.

    Si seleccionamos la opción de crear una nueva, que es el valor por defecto, tendremos que indicar el esquema y el nombre de tabla. Nos propondrá como valores por defecto “public” para el esquema y como el nombre de la tabla el nombre de la que queremos exportar.

    Si al darle a siguiente ya existiese esa tabla no nos dejara avanzar en el asistente informándonos de que esa tabla ya existe, y si introdujimos espacios o mayúsculas nos preguntara si queremos que nos los arregla automáticamente o no, dejándonos en esa pagina del asistente en caso de que le digamos que no para que lo arreglemos nosotros.

  4. Clave primaria.

    Nos dará a elegir entre crear una nueva clave primaria única basada en un valor autoincrementado o si queremos usar como clave primaria una ya existente. Por defecto estará marcada la opción de crear una nueva, y nos propondrá ya un nombre “pk”.

    Si indicamos que queremos usar un campo ya existente, tendremos que elegir de una lista de campos el que deseemos.

  5. Validar las geometrías.

    Cuando vamos a cargar datos en una BBDD es muy recomendable que las geometrías que carguemos sean “correctas”. Esta pagina nos permitirá seleccionar entre varia opciones para tratar esto:

    • No hacer nada especial, las geometrías se insertan tal cual y si se produce un error al hacerlo se aborta el proceso.

    • Verificar que no hay ninguna geometría que por alguna razón este corrupta, normalmente debido a que se cargo de algún tipo de formato que era muy relajado a la hora de permitir almacenar geometrías, por ejemplo de lineas con un solo punto o polígonos con menos de dos.

      Si seleccionamos esta opción, tendremos que elegir entre tres posibles acciones a realizar cuando se de esto:

      • Insertar la feature entera con el campo geometría a null.
      • No insertar la feature y pasar a la siguiente.
      • Fallar, y abortar el proceso.
    • Verificar que las geometrías son “validas” (ST_isValid). Y si no lo son tendremos, por un lado un check para intentar corregir el problema de forma automáticamente, y en caso de que no elegir entre tres posibles acciones a realizar, que serán las mismas que en el caso anterior.

    Por defecto estará marcada la primera opción, no hacer nada especial en relación a las geometrías.

  6. Selección de las features.

    Por ultimo tendremos que indicar que features queremos cargar. Podremos:

    • Insertar todas las features de la tabla, que sera la opción que viene marcada por defecto.
    • Insertar solo las features seleccionadas, que insertara solo aquellas features que estén seleccionadas en la tabla o capa de origen.
    • Y Aplicar un filtro, en donde podremos aplicar un filtro usando la sintaxis de un “where” de SQL que podremos guardar asignándole un nombre.

Una vez pasado por estas paginas del asistente se iniciara el proceso de exportación a la BBDD, y en caso de producirse un error presentara un dialogo intentando describir cual a sido el problema, y en caso de que se haya dado procesando una feature en concreto, nos permitirá ver los valores de la feature que ha lo ha ocasionado.

Bueno, y esto es todo.

Hasta otra.

About Joaquin del Cerro

Development and software arquitecture manager at gvSIG Team. gvSIG Association
This entry was posted in development, gvSIG Desktop, opinion, spanish. Bookmark the permalink.

One Response to Cargar capas en base de datos desde gvSIG 2.1.0

  1. Luis Angel says:

    Hola

    Que versión de Postgres y postgis soporta gvsig 2.0, 2.1 y 2.2

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s