Aggiorna il database da PostgreSQL 8.3.8 + PostGIS 1.3.5 a PostgreSQL 10.1 + PostGIS 2.4


1

Ho ereditato un vecchio server (Ubuntu 12.04.5) con un database in esecuzione su PostgreSQL 8.3.8 con l'estensione PostGIS 1.3.5. Questo server verrà sostituito da un nuovo server (4.14.12-1-ARCH) in cui utilizzo la finestra mobile per separare diverse istanze PostgreSQL. Per una prima prova ho usato il mdillon / postgis: ultima immagine per creare il nuovo setup. Ciò dovrebbe comportare PostgreSQL 10.1 + PostGIS 2.4.

Quando provo a ripristinare un dump del vecchio database sul nuovo server, ricevo molti errori come il seguente:

...
pg_restore: creating FUNCTION "public.st_box2d_in(cstring)"
pg_restore: [archiver (db)] Error while PROCESSING TOC:
pg_restore: [archiver (db)] Error from TOC entry 626; 1255 1052513 FUNCTION st_box2d_in(cstring) postgres
pg_restore: [archiver (db)] could not execute query: ERROR:  could not access file "/usr/lib/postgresql/8.3/lib/liblwgeom": No such file or directory
    Command was: CREATE FUNCTION st_box2d_in(cstring) RETURNS box2d
    LANGUAGE c IMMUTABLE STRICT
    AS '/usr/lib/postgresql/8.3/lib/liblwgeom', 'BOX2DFLOAT4_in';
pg_restore: creating FUNCTION "public.st_box2d_out(box2d)"
pg_restore: [archiver (db)] Error from TOC entry 628; 1255 1052515 FUNCTION st_box2d_out(box2d) postgres
pg_restore: [archiver (db)] could not execute query: ERROR:  could not access file "/usr/lib/postgresql/8.3/lib/liblwgeom": No such file or directory
    Command was: CREATE FUNCTION st_box2d_out(box2d) RETURNS cstring
    LANGUAGE c IMMUTABLE STRICT
    AS '/usr/lib/postgresql/8.3/lib/liblwgeom', 'BOX2DFLOAT4_out';
pg_restore: creating TYPE "public.box2d"
pg_restore: [archiver (db)] Error from TOC entry 2331; 1247 1052511 TYPE box2d postgres
pg_restore: [archiver (db)] could not execute query: ERROR:  function st_box2d_in(cstring) does not exist
    Command was: CREATE TYPE box2d (
    INTERNALLENGTH = 16,
    INPUT = st_box2d_in,
    OUTPUT = st_box2d_out,
    ALIGNMENT = int4,
    STORAGE = plain
);
...

Il vecchio database necessita di librerie che non sono più disponibili con la nuova versione di Postgres-Postgis. Qual è il modo migliore per affrontarlo?

Mentre sto usando la finestra mobile potrei forse semplicemente creare un contenitore con il vecchio software e mantenerlo in esecuzione senza toccare il database. Il database viene utilizzato solo internamente: nessun problema di sicurezza qui. D'altro canto, vorrei utilizzare le nuove versioni di Postgres-Postgis per essere meglio preparati per il futuro. Ma è realisticamente possibile eseguire un aggiornamento del database e delle sue funzionalità?

Qual è il modo migliore per affrontarlo?



@ GerardH.Pille Grazie per questo link e scusa il mio lungo silenzio. Ho deciso di seguire il percorso facile e andare con il contenitore docker per ora.
nevrome,

Ho appena trascorso un paio di giorni cercando di accedere a un mysql all'interno di una finestra mobile. Il "percorso facile" potrebbe essere leggermente eufemistico. ;-)
Gerard H. Pille,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.