6.4. Обновление

Номер версии NextGIS Web On-Premise содержит три числа в формате A.B.C, где A.B - основной номер версии, а C - патч-версия. Обновление между основными версиями должно выполняться последовательно, то есть при обновлении с версии 2.8.0 до версии 3.0.0, то сначала необходимо выполнить обновление до версии 2.9.0, затем до версии 3.0.0. При наличии патч-версий (например, 2.8.1, 2.8.2 и т.д.) обновление нужно выполнять сразу до последней патч-версии основной версии.

Информация о текущей версии NextGIS Web On-Premise доступна администратору в интерфейсе NextGIS Web в разделе “Информация о системе” панели управления. Также ее можно посмотрреть в файле docker-compose.yaml в именах образов (services.<имя_сервиса>.image).

Важно

Все шаги в этом разделе должны выполняться с правами суперпользователя (root). Если вы используете sudo, то чтобы не запутаться в командах, рекомендуется сначала выполнить sudo -i для получения полноценной сессии суперпользователя.

Для обновления с версии на версию необходимо выполнить следующие шаги:

Шаг 1. Ознакомьтесь с действиями и требованиями перечисленными ниже для конкретной версии:

Шаг 2. Создайте офлайн-резервную копию системы в соответствии с инструкцией в разделе “Резервное копирование”.

Шаг 3. Создайте резервную копию файла docker-compose.yaml (A.B.C в команде ниже необходимо заменить на текущую версию, то есть ту версию с которой вы выполняете обновление):

$ cd /srv/ngwdocker
$ cp docker-compose.yaml docker-compose-A.B.C.yaml

Шаг 4. Обновите файл docker-compose.yaml, заменив в нем упоминания текущей версии в именах образов (services.<имя_сервиса>.image) на новую версию, на которую вы выполняете обновление.

Шаг 5. Загрузите новые образы Docker на сервер: в случае наличия доступа к Интернету выполните команду:

$ cd /srv/ngwdocker
$ docker compose pull

В случае отсутствия доступа к Интернету, свяжитесь со службой поддержки NextGIS для получения архивов с образами, загрузите их на сервер и выполните команду загрузки образов из архива:

$ docker load -i /path/to/file.tar.gz

Шаг 6. Примените миграции, запустите регламентное обслуживание и дождитесь окончания выполнения команды:

$ cd /srv/ngwdocker
$ docker compose run --rm app nextgisweb migration upgrade --no-dry-run
$ docker compose run --rm app nextgisweb maintenance

Шаг 7. Запустите обновленные контейнеры после чего процесс обновления будет завершен:

$ cd /srv/ngwdocker
$ docker compose up -d

6.4.1. Обновление до версии 3.1.x с версии 3.0.x

В версии 3.1.0 изменились системные требования, убедитесь, что ваша система удолетворяет перечисленными ниже требованиям:

  • Минимальная версия Docker Engine - 23.0.0.

  • Минимальная версия Docker Compose - 2.x.

  • Минимальная версия ядра Linux - 5.10.

  • Прекращена поддержка Ubuntu 20.04.

Перед выполнением обновления необходимо проверить настройки сопоставления строк (collation) баз данных PostgreSQL, для этого выполните команду приведенную ниже:

$ cd /srv/ngwdocker
$ docker compose exec postgres psql -c "SELECT datname, datcollate, datctype FROM pg_database  WHERE datcollate <> 'C.UTF-8' OR datctype <> 'C.UTF-8'"
 datname | datcollate | datctype
---------+------------+----------
(0 rows)

Если в результате выполнения команды выводится пустой результат (0 строк, как в примере), то можно продолжать обновление. В противном случае обновление продолжать нельзя и необходимо обратиться в службу поддержки NextGIS. Такое возможно для установок начальная версия которых меньше чем 1.7.0 (вышла в августе 2021 года).

6.4.2. Обновление до версии 3.0.x с версии 2.9.x

Дополнительные шаги не требуются, выполните стандартные шаги обновления.

6.4.3. Обновление до версии 2.9.x с версии 2.8.x

После создания резервной копии текущей версии необходимо выполнить обновление PostGIS, для этого выполните команды приведенные ниже. В результате их выполнения откроется интерактивная консоль PostgreSQL внутри контейнера с базой данных NextGIS Web:

$ cd /srv/ngwdocker
$ docker compose down
$ docker compose up -d postgres
$ docker compose exec postgres psql -U postgres nextgisweb

В интерактивной консоли PostgreSQL выполните команды (nextgisweb=# - это приглашение консоли PostgreSQL, оно выводится автоматически и вводить его не нужно, только команды после него):

nextgisweb=# ALTER USER nextgisweb SUPERUSER;
nextgisweb=# SET SESSION AUTHORIZATION nextgisweb;
nextgisweb=# SELECT postgis_extensions_upgrade();
nextgisweb=# ALTER USER nextgisweb NOSUPERUSER;
nextgisweb=# \q

6.4.4. Обновление до версии 2.8.x с версии 2.7.x

Дополнительные шаги не требуются, выполните стандартные шаги обновления.

6.4.5. Обновление до версии 2.7.x с версии 2.6.x

Дополнительные шаги не требуются, выполните стандартные шаги обновления.

6.4.6. Обновление до версии 2.6.x с версии 2.5.x

Дополнительные шаги не требуются, выполните стандартные шаги обновления.