Обновление базы данных с PostgreSQL 8.3.8 + PostGIS 1.3.5 до PostgreSQL 10.1 + PostGIS 2.4
Я унаследовал старый сервер (Ubuntu 12.04.5) с базой данных, работающей на PostgreSQL 8.3.8 с расширением PostGIS 1.3.5. Этот сервер будет заменен новым сервером (4.14.12-1-ARCH), где я использую docker для разделения разных экземпляров PostgreSQL. Для первого теста я использовал образ mdillon / postgis: latest для создания новой настройки. Это должно привести к PostgreSQL 10.1 + PostGIS 2.4.
Когда я пытаюсь восстановить дамп старой базы данных на новом сервере, я получаю много ошибок, таких как:
... 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 ); ...
Для старой базы данных нужны библиотеки, которые больше не доступны в новой версии Postgres-Postgis. Какой лучший способ справиться с этим?
Поскольку я использую Docker, я мог бы просто создать контейнер со старым программным обеспечением и продолжать его работу, не касаясь базы данных. База данных используется только для внутреннего использования: здесь нет проблем с безопасностью. С другой стороны, я хотел бы использовать новые версии Postgres-Postgis, чтобы лучше подготовиться к будущему. Но реально ли выполнить обновление базы данных и ее функций?
Какой лучший способ справиться с этим?
0 ответов на вопрос
Похожие вопросы
-
2
Как преобразовать базу данных Mac OS Filemaker 2 в недавнюю базу данных FM или Bento db, сохранив от...
-
3
OpenX: mySql VS PostgreSQL
-
5
Что случилось с WinFS?
-
-
4
Что эквивалентно Microsoft Access на Mac?
-
1
Найти приложение ORM для OSX
-
3
Иметь редактора Vim Psql
-
2
Программное обеспечение базы данных домашних фильмов
-
4
Какое решение для совместной базы данных лучше всего соответствует этим требованиям?
-
2
Как мне восстановить мою базу данных?
-
2
Что такое сценарий DDL в контексте баз данных?