[sisyphus] PostGIS и Postgres-ы

Alexei Takaseev alexei на taf.ru
Чт Мар 7 13:44:50 MSK 2019


----- Исходное сообщение ----- 

> От: "Игорь Андросов" <blacester на gmail.com>
> Кому: "ALT Linux Sisyphus discussions" <sisyphus на lists.altlinux.org>
> Отправлено: Четверг, 7 Март 2019 г 16:03:57
> Тема: Re: [sisyphus] PostGIS и Postgres-ы

> Необходимость нескольких версий, на мой взгляд, обосновывается тем
> что:
> 1. Базы PG бинарно не совместимы между мажорными версиями. (Для
> переезда на новую версию нужно сделать определенные телодвижения,
> особенно приятно когда перестает работать расширение и забакапить
> базу становиться невозможным, в результате для переезда приходится
> билдит сначала нужный postgres с devel, потом postgis для старой и
> новой версии (сейчас для 11 версии postgis нет), бакапить базу,
> ставить новую версию подымать)

Что поделать, разработчики PG не считают нужным встраивать автоматическую
конвертилку форматов (pg_upgrade таковой считать нельзя, это банальное
dump/restore), и в процессе обновления между мажорными версиями полагаются на
квалификацию DBA.

> 2. Не всегда и весь не софт поддерживает новую мажорную версию.
> (Пример - ArcGIS которому для работы на Postgres требуется
> собственное расширение, которое жестко зависит от мажорной версии, и
> обычно отстает на 2-3 версии, текущая последняя - 9.5.3, про
> минорные сейчас не помню прибиты ли гвоздями или нет).
> 3. Есть уже работающие решения, смена Postgres на которых может
> оказаться проблемой по некоторым, не всегда техническим, причинам.

Специально для такого случая оставлена возможность собрать PG нужной ветки
с -devel пакетами - достаточно указать в параметрах rpmbuild "--with devel"
Естественно это решения исключительно для пападанцев с капризным софтом. Собственно,
именно так мне и пришлось сделать, чтобы запустить связку сервеного расширения postgis 2.5.1
и PG11 на бранче P8, где официальный -devel предоставляет версия 9.6.
И да, это придется сделать самому пользователю ArcGIS хотя бы потому, что это ПО не входит
в состав пакетной базы Сизифа/бранчей, разводить бардак из-за неопределенных хотелок
неопределенного набора неизвестного софта это не совсем правильная мысль.

> Исходя из этого - оставлять только одну, последнюю, версию (под 1С
> считаю не относящуюся к данному вопросу) мне видится не правильным,
> это может сильно ограничивать взаимодействие с другим софтом и
> приходится либо брать другой дистрибутив, либо заниматься сборкой
> нужного окружения.

Адаптацией клиентского софта под системное окружение это одна из задач
майнтайнера пакета. Возможно требование наличия именно версии 9.5 вызвано
не чем-то глубинным (к примеру портянка специфичных патчей 1С для серверной
части), что есть только в ветке 9.5, а просто корявым синтаксисом  скриптах, как
это было с postgis, где сидение на 9.6 происходило из-за использования
объявленного как deprecate еще во времена 9.1 скрипта createlang вместо
конструкции CREATE EXTENSION

> Если взять нелюбимый мной, но многими используемый CentOS - у них в
> репе вроде одна версия postgresql, однако, сборку других версий
> (включая postgis) под него обеспечивает сам Postgres, кроме того,
> если правильно помню, обеспечивает возможность использовать
> несколько разных версий одновременно.

К сожалению, CentOS тут не может быть примером по причине того, что там
постгрес вообще версии 9.2 и он там единственный.

В вашем случае достаточно откатиться до последней работавшей у вас версии postgis на PG10,
поставить пакеты на холд и дождаться выкатки postgis собранного под PG-11. Далее снять бэкап базы
черз pg_dump -Fc bla-bla и далее провести апгрейд базы по инструкции
http://postgis.net/docs/manual-2.5/postgis_installation.html#upgrading пункт 2.10.2 Hard upgrade

Возможно мантайнеру postgis стоит учесть момент, что обновления postgis вида 2.4.x -> 2.5.x не совместимы
и замещение по dist-upgrade может привести к развалу.


Подробная информация о списке рассылки Sisyphus