Processing math: 100%

8 votos

¿Cómo puedo transferir datos de una base de datos PostGIS a otra?

Tengo bastantes datos SIG en una antigua base de datos PostGIS (versión "1.1.6") y necesito transferirlos a otra base de datos PostGIS ("POSTGIS="1.5.3").

Intenté crear una copia de seguridad y restaurarla en la nueva base de datos, pero arroja varios cientos de errores.

¿Cuál es la forma correcta de transferir los datos?

6voto

shsteimer Puntos 8749

De acuerdo con Paul Ramsey :

Primero, para los aumentos de la versión del parche (por ejemplo, X.Y.Z -> X.Y.(Z+1)) en PostgreSQL y PostGIS no necesitas hacer nada más. que instalar el nuevo software. Los datos pueden permanecer en su lugar y todo funcionará.

Para incrementos menores de la versión en PostgreSQL (por ejemplo X.Y.Z -> X.(Y+1).Z) necesitas hacer un volcado y una restauración. Para incrementos menores de la versión en PostGIS, necesitas hacer una "actualización suave", lo que significa dejar los datos en lugar, pero ejecutando los scripts de actualización (por ejemplo. postgis_upgrade_14_to_15.sql) después de instalar la actualización del software.

Por último, para los aumentos de versión importantes en PostgreSQL y PostGIS (por ejemplo. X.Y.Z -> (X+1).Y.Z) necesitas hacer un volcado y una restauración.

¿Almacenaste datos en el esquema público?

Lo que me lleva a lo que quiero decir: puedes asegurarte de que el mayor facilidad para hacer el volcado y la restauración de los datos PostGIS si se asegura que no almacena ningún dato en el esquema "público".

Sin embargo, no todo está perdido si se almacenan los datos en el esquema público

"Pero Paul", dices, "Ya tengo una base de datos completa, ¿eso hace que significa que soy SOL?" No, pero necesitarás un estómago fuerte. Primero, prepara tu nuevo PostgreSQL. Crea una base de datos en blanco, carga el PostGIS en ella. Ahora, carga tu archivo de respaldo en esa base de datos. Verás muchos errores. Sin embargo, estos errores serán causados por la antigua función PostGIS y escribir definiciones de su archivo de volcado que entren en conflicto con la teclee las definiciones en su base de datos. Y ya que quieres que el nuevo definiciones, no las antiguas, está bien. Tu carga, a pesar de todo el el ruido y los errores, deberían funcionar realmente. Una vez hecho, puedes moverte tus datos en un bonito esquema separado, para que la próxima vez puedas hacer un una restauración limpia y libre de errores.

¿Ha probado si funciona a pesar de los errores?

El sitio PostGIS también tiene una sección sobre la actualización del PostGIS .

2voto

Iznogood Puntos 143

Compruebe las tablas habituales y las "tablas con geometría", y luego utilice (en la terminal de Shell/UNIX)

  • pg_dump para la exportación los cuadros habituales (importación con psql )
  • pgsql2shp para exportar las tablas geográficas, y shp2pgsql para importar.

El último (pgsql2shp) es para el "fallo" de pg_dump al exportar versiones "antiguas a nuevas de datos PostGIS". Por supuesto, si no hay errores, sólo necesitas pg_dump.

Revise primero la recomendación de @R.K, psql -f postgis_upgrade_1X_to_15.sql -d your_spatial_database ... En general (bot no siempre) está bien... El pgsql2shp es la ÚLTIMA opción.

1voto

Estoy de acuerdo con las otras respuestas y he usado el método pg_dump. Una ventaja adicional es que puedes comprimir el dump a un zip o tar por ejemplo y moverlo a otro servidor si lo necesitas.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X