Установка и настройка PostgreSQL

В качестве СУБД для платформы ЭверГИС используется PostgreSQL версии 16 и выше с установленными расширениями PostGIS и h3.

Пример установки на ОС Ubuntu 22 с PostgreSQL 16.

Установка PostgreSQL и PostGIS

Обновляем кэш репозиториев и устанавливаем необходимое ПО:

sudo apt-get update
sudo apt install dirmngr ca-certificates software-properties-common gnupg gnupg2 apt-transport-https curl -y

Добавляем сертификат и настраиваем репозиторий PostgreSQL:

curl -fSsL https://www.postgresql.org/media/keys/ACCC4CF8.asc | gpg --dearmor | sudo tee /usr/share/keyrings/postgresql.gpg > /dev/null
 
echo deb [arch=amd64,arm64,ppc64el signed-by=/usr/share/keyrings/postgresql.gpg] http://apt.postgresql.org/pub/repos/apt/ jammy-pgdg main | sudo tee -a /etc/apt/sources.list.d/postgresql.list

Устанавливаем PostgreSQL 16 и PostGIS 3:

sudo apt-get update
sudo apt install postgresql-client-16 postgresql-16-postgis-3 -y

Базовая настройка

Доступ к СУБД

Для возможности подключения к СУБД из Docker-контейнеров необходимо внести изменения в конфигурационные файлы PostgreSQL.

Настройка прослушивания

В файле /etc/postgresql/16/main/postgresql.conf раскомментируйте и измените строку:

listen_addresses = '*'

Настройка доступа из Docker

В конец файла /etc/postgresql/16/main/pg_hba.conf добавьте строку:

hostnossl       all     all             172.0.0.0 255.0.0.0         scram-sha-256

После внесения изменений перезапустите службу PostgreSQL:

sudo service postgresql restart

Установка расширения h3

Устанавливаем зависимости:

sudo apt-get update
sudo apt install cmake make gcc libtool clang-format cmake-curses-gui lcov doxygen pgxnclient postgresql-server-dev-16 -y

Устанавливаем расширение h3 с помощью менеджера пакетов pgxn:

pgxn install h3

Создание базы данных

Подключаемся к PostgreSQL от имени системного пользователя postgres:

sudo -u postgres psql

Создаём БД и устанавливаем необходимые расширения:

CREATE DATABASE evergis OWNER postgres;
\c evergis
CREATE EXTENSION h3_postgis CASCADE;

Проверка расширений

Для проверки корректности установки выполните следующие запросы:

SELECT PostGIS_Full_Version();
SELECT h3_lat_lng_to_cell(POINT('37.3615593,-122.0553238'), 5);

Если расширения установлены корректно, первый запрос вернёт версию расширения PostGIS, а второй — идентификатор ячейки h3 (например, 85e35e73fffffff).