Skip to content
GEOSAT
Volver al blog
Open GIS
Open GIS2026-09-23GEOSAT6 min lectura

Migrar una geodatabase a GeoPackage y PostGIS sin perder el significado de los datos

Inventarie dominios, relaciones, adjuntos e identificadores antes de convertir una geodatabase.

Revisión editorial: 2026-09-23

QGISGDALGeoPackageOpen GIS

Una conversión de geometría no equivale a migrar una geodatabase. Las tablas pueden abrir correctamente mientras se pierden reglas de edición, relaciones o la capacidad de localizar un adjunto. Trabaje con una copia autorizada, mantenga el original de solo lectura y defina qué consumidor debe seguir funcionando.

Inventario previo

Con GDAL que incluya OpenFileGDB, revise capas, campos, CRS, identificadores y recuentos. El soporte depende de la versión y de las características usadas en el archivo. Consulte especialmente las restricciones sobre identificadores de 64 bits; no asuma que un OBJECTID conserva su valor en todos los formatos.

Ejemplo de código
ogrinfo -ro -so -al fuente.gdb
ogr2ogr -f GPKG piloto.gpkg fuente.gdb predios -nln predios
ogrinfo -ro -so piloto.gpkg predios

Ejecute la conversión en una carpeta nueva donde piloto.gpkg no exista. El comando exporta la capa predios; cambie ese nombre por una capa inventariada, no por una ruta de producción. El resultado esperado es una capa legible con el mismo número de objetos elegibles. Esto no prueba aún que se conservaron sus reglas de negocio.

Valide más que el número de filas

Compare tipos, precisión numérica, longitudes de texto, nulos, fechas, geometrías multipartes y valores codificados. El nombre visible de una categoría puede proceder de un dominio que una aplicación interpretaba automáticamente. Decida si conservar el código y reconstruir su catálogo o materializar una etiqueta adicional; mantenga una clave de negocio estable en ambos casos.

Pruebe una relación padre-hijo con registros conocidos, un adjunto de ejemplo y un objeto con geometría vacía. Las relaciones disponibles en el controlador no garantizan que un formato destino o un cliente las utilice igual. Las reglas de atributos, topologías, redes y versionamiento requieren diseño explícito, no un supuesto de equivalencia por extensión de archivo.

Pase a PostGIS cuando necesite concurrencia

Configure una conexión local gis_lab en el archivo de servicios de PostgreSQL y use autenticación gestionada fuera del comando. Importe en un esquema de pruebas previamente creado y vacío:

Ejemplo de código
ogr2ogr -f PostgreSQL 'PG:service=gis_lab' piloto.gpkg predios -nln staging.predios

No use -overwrite contra una tabla operativa. Verifique nuevamente conteos, claves y CRS, cree índices según consultas reales y conceda permisos mínimos. Si debe conservar vínculos con sistemas externos, prepare una tabla de correspondencia entre la clave original y la nueva clave técnica.

Criterio de aceptación

Abra la copia en QGIS y en cada cliente que vaya a continuar. Consulte una entidad por su clave, edite un atributo permitido, rechace un valor fuera del dominio y recupere un adjunto. Documente qué reglas quedaron en la base de datos, cuáles en formularios y cuáles requieren desarrollo. Mantenga el origen disponible hasta que esas pruebas pasen y exista una ruta de reversión; una conversión que termina sin error no autoriza el corte.

Construir una matriz de preservación antes de exportar

Crea un inventario de migración con una fila por tipo de objeto. Una dependencia puede tener diez clases de entidad, pero solo dos relaciones de negocio que hacen operativo el sistema. Esas relaciones necesitan pruebas explícitas.

Elemento de origenDestino propuestoEvidencia requerida
Identificador de negocioColumna única de texto o UUIDCoincidencia exacta, incluidos ceros iniciales
OBJECTIDClave técnica de destino y correspondencia si hace faltaEnlaces y consumidores externos siguen resolviendo
Dominio codificadoTabla de referencia o restricción; relación de valores QGISEl punto de escritura rechaza códigos inválidos
Relación padre-hijoClave foránea y relación configurada en el clienteUn padre conocido devuelve sus hijos esperados
AdjuntoArchivo u objeto con metadatosPropietario, tipo de contenido y bytes recuperables
Seguimiento de ediciónCampos acordados o proceso de auditoríaCambios atribuibles a persona y momento
Regla topológica o de redValidación independiente o componente conservadoDetección de una infracción deliberada

No renombres identificadores, traduzcas códigos y reproyectes geometrías en la primera exportación al mismo tiempo. Separa las transformaciones para identificar la causa de una diferencia. Conserva códigos como 00042 en texto: convertirlos a entero modifica su significado aunque coincidan los conteos.

Validación en tres recorridos

  1. Estructura. Compara tablas, campos, tipos, longitudes, precisión, nulabilidad, geometría, dimensiones Z/M y CRS. Registra GDAL mediante ogrinfo --version. Consulta la documentación de OpenFileGDB aplicable a esa versión; no presupongas capacidades idénticas entre computadores.
  2. Relaciones. Elige un padre sin hijos, uno con un hijo y otro con varios. Incluye un adjunto con tilde en el nombre y un campo opcional vacío. Verifica identificadores antes de comparar etiquetas. Busca registros huérfanos mediante la clave de relación de destino.
  3. Comportamiento. Abre el destino con cada cliente que seguirá activo. Prueba una inserción válida, un valor fuera del dominio, una relación inválida y una edición seguida de rollback. Visualizar el mapa en modo lectura no valida esas operaciones.

Para un modelo de destino con assets(asset_id) e inspections(asset_id), comprueba huérfanos así:

Ejemplo de código
SELECT i.asset_id, count(*)
FROM staging.inspections AS i
LEFT JOIN staging.assets AS a ON a.asset_id = i.asset_id
WHERE a.asset_id IS NULL
GROUP BY i.asset_id;

Se esperan cero filas únicamente si toda inspección debe referenciar un activo. Un huérfano histórico legítimo necesita una regla explícita; eliminarlo silenciosamente mejora el conteo mientras destruye evidencia.

Elegir GeoPackage, PostGIS o ambos

GeoPackage sirve para un piloto portable, una entrega de intercambio o un paquete offline acotado. PostGIS administrado responde a necesidades de edición compartida, servicios, restricciones centrales y recuperación de servidor. También puedes combinar ambos: PostGIS como almacenamiento central y GeoPackage como formato de intercambio controlado.

Exportar a GeoPackage no conserva automáticamente todos los comportamientos de la geodatabase. La capacidad de GDAL para exponer dominios o relaciones es distinta de su copia mediante un comando y de su interpretación por el cliente. Inspecciona el resultado, especialmente si QGIS y la terminal incluyen versiones diferentes de GDAL.

Congelar, conciliar y revertir el cambio

Acuerda cuál sistema permite escritura durante la ventana final. Si ambos reciben ediciones, define cómo identificar y conciliar cambios; las fechas pueden omitir eliminaciones o sufrir diferencias de reloj. Conserva una instantánea autorizada e inmutable del origen e identifica la versión convertida. Concilia el lote final, cambia un grupo acotado de usuarios y observa rechazos de edición y enlaces sin resolver.

El rollback debe indicar qué sistema vuelve a ser autoritativo, cómo preservar las ediciones posteriores al cambio y quién resuelve divergencias. “Restaurar el respaldo de ayer” puede perder el trabajo de hoy. Ensaya el procedimiento con el laboratorio sintético antes de agregar adjuntos privados o conexiones de producción.

Fuentes y documentación

Siguiente paso

Continúe en la colección Open GIS. Para comparar un proyecto concreto, use la calculadora de costo total y solicite una evaluación.

Lecturas relacionadas

Artículos relacionados