Aktualisieren Sie die Datenbank von PostgreSQL 8.3.8 + PostGIS 1.3.5 auf PostgreSQL 10.1 + PostGIS 2.4
Ich habe einen alten Server (Ubuntu 12.04.5) mit einer Datenbank geerbt, die unter PostgreSQL 8.3.8 mit der PostGIS 1.3.5-Erweiterung ausgeführt wird. Dieser Server wird durch einen neuen Server (4.14.12-1-ARCH) ersetzt, auf dem ich Docker zum Trennen verschiedener PostgreSQL-Instanzen verwende. Für einen ersten Testlauf habe ich das mdillon / postgis: latest image verwendet, um das neue Setup zu erstellen. Das sollte zu PostgreSQL 10.1 + PostGIS 2.4 führen.
Wenn ich versuche, einen Speicherauszug der alten Datenbank auf dem neuen Server wiederherzustellen, erhalte ich eine Reihe von Fehlern wie die folgenden:
... 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 ); ...
Die alte Datenbank benötigt Bibliotheken, die mit der neuen Postgres-Postgis-Version nicht mehr verfügbar sind. Was ist der beste Weg, um damit umzugehen?
Da ich Docker verwende, könnte ich vielleicht einfach einen Container mit der alten Software erstellen und ihn laufen lassen, ohne die Datenbank zu berühren. Die Datenbank wird nur intern verwendet: Hier kein Sicherheitsproblem. Andererseits möchte ich die neuen Postgres-Postgis-Versionen nutzen, um besser auf die Zukunft vorbereitet zu sein. Aber ist es realistisch möglich, ein Update der Datenbank und ihrer Funktionen durchzuführen?
Was ist der beste Weg, um damit umzugehen?
0 Antworten auf die Frage
Verwandte Probleme
-
2
Wie konvertiere ich eine Mac OS Filemaker 2-Datenbank in eine aktuelle FM- oder Bento-Datenbank, wob...
-
3
OpenX: mySql VS PostgreSQL
-
5
Was ist mit WinFS passiert?
-
4
Was ist das Äquivalent von Microsoft Access auf dem Mac?
-
1
So finden Sie die ORM-App für OSX
-
3
Den Editor von Vim Psql haben
-
2
Home-Movie-Datenbanksoftware
-
4
Welches ist die beste Lösung für eine gemeinsam genutzte Datenbank, die diese Anforderungen erfüllt?
-
2
Wie kann ich meine Datenbank wiederherstellen?
-
2
Was ist ein DDL-Skript im Kontext von Datenbanken?