Установка и настройка 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).