Обновление#
Примечание
Обновление может быть произведено сотрудниками NextGIS при наличии удаленного доступа, подробнее о том, что именно понадобится.
Номер версии 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.app.image).
Переход между редакциями и подключение опции Whitelabel
При обновлении с редакции Standard до редакции Extended, а так же при добавлении опции Whitelabel, необходимо вначале выполнить обновление до последней версии текущей редакции, а затем уже выполнять обновление до новой редакции.
Шаги описанные ниже так же применимы и при переходе с одной редакции на другую, отличается только шаг 4 где вносятся изменения в docker-compose.yaml. Необходимо обратится в поддержку NextGIS для получения актуального файла docker-compose.yaml с необходимыми изменениями. Не забудьте прикрепить к обращению актуальный файл docker-compose.yaml с сервера, чтобы специалисты NextGIS могли внести необходимые изменения.
Важно
Все шаги в этом разделе должны выполняться с правами суперпользователя (root). Если вы используете sudo, то чтобы не запутаться в командах, рекомендуется сначала выполнить sudo -i для получения полноценной сессии суперпользователя.
При обновлении с доступом к Интернету, для получения образов необходимо выполнить авторизацию в NextGIS Container Registry c использованием имени пользователя (example) и пароля (sesame), предоставленного компанией NextGIS при первичной установке:
$ docker login cr.nextgis.com -u example -p sesame
Login Succeeded
Для обновления с версии на версию необходимо выполнить следующие шаги:
Шаг 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
В случае обновления без доступа к Интернету, на данном этапе необходимо выполнить загрузку образов новой версии Docker на сервер. Сгенерируйте архив с образами при помощи инструмента Выгрузка образов из NextGIS Container Registry. Для запуска инструмента выгрузки можно использовать любой аккаунт NextGIS ID, в том числе на бесплатном плане, однако при запуске инструмента потребуется указать ваш логин и пароль для доступа к NextGIS Container Registry. Скачайте архив с образами на локальный компьютер, затем перенесите его на сервер и выполните команду загрузки образов из архива:
$ 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
Обновление до версии 3.3.x с версии 3.2.x#
Дополнительные шаги не требуются, выполните стандартные шаги обновления.
Обновление до версии 3.2.x с версии 3.1.x#
На шаге 6 для Extended Edition (в том числе Whitelabel), перед выполнением команды docker compose run --rm app nextgisweb maintenance необходимо запустить сервис chub командой docker compose up -d chub. Таким образом, команды, выполняемые на шаге 6, будут выглядеть следующим образом:
$ cd /srv/ngwdocker
$ docker compose run --rm app nextgisweb migration upgrade --no-dry-run
$ docker compose up -d chub
$ docker compose run --rm app nextgisweb maintenance
Обновление до версии 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 года).
Обновление до версии 3.0.x с версии 2.9.x#
Дополнительные шаги не требуются, выполните стандартные шаги обновления.
Обновление до версии 2.9.x с версии 2.8.x#
После создания резервной копии (шаги 2 и 3) необходимо выполнить обновление 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=# ALTER EXTENSION postgis UPDATE;
nextgisweb=# SELECT postgis_extensions_upgrade();
nextgisweb=# SELECT postgis_extensions_upgrade();
nextgisweb=# DROP EXTENSION postgis_raster;
nextgisweb=# ALTER USER nextgisweb NOSUPERUSER;
nextgisweb=# \q
Обновление до версии 2.8.x с версии 2.7.x#
Дополнительные шаги не требуются, выполните стандартные шаги обновления.
Обновление до версии 2.7.x с версии 2.6.x#
Дополнительные шаги не требуются, выполните стандартные шаги обновления.
Обновление до версии 2.6.x с версии 2.5.x#
Дополнительные шаги не требуются, выполните стандартные шаги обновления.
Обновление до версии 2.5.x с более ранних версий#
В зависимости от версии, с которой вы обновляетесь, могут потребоваться дополнительные шаги. Пожалуйста, обратитесь в службу поддержки NextGIS для получения рекомендаций по обновлению до версии 2.5.x. К обращению прикрепите актуальную версию файла docker-compose.yaml с сервера.