Обновление базы, отчётов и файлов для рабочих станций можно выполнить без окна модуля «Обновление» — одними и теми же ключами на Linux и Windows.
clubis-update-cli из отдельного пакета clubis-fitness-update-cli (графический модуль «Обновление» не нужен). Удобно для площадки без своего домена, нескольких баз на одном PostgreSQL и запуска по cron.update.exe). Окно не открывается, если в командной строке есть эти ключи — так можно поставить обновление в планировщик задач.Свой домен площадке не нужен: команда работает локально на сервере с базой.
Перед обновлением всегда делайте резервную копию базы. Сначала обновите программу на сервере (пакеты Linux или Обновление для Windows), потом базу. Во время наката схемы клиенты не должны работать в ClubIS.
После подключения репозитория ClubIS:
sudo apt-get update
sudo apt-get install clubis-fitness-update-cli
Команда: /usr/bin/clubis-update-cli.
Модуль Обновление уже входит в установку ClubIS. Программа: C:\Program Files (x86)\ClubIS\Fitness 3\update.exe.
Без ключей открывается обычное окно. С ключами из этой статьи (--full, --disconnect-clients, --sync-workstation-files и др.) окно не показывается: то же обновление, что у clubis-update-cli.
Рабочая папка задачи или командной строки — C:\Program Files (x86)\ClubIS\Fitness 3.
Сначала посмотрите план без изменений.
Linux:
clubis-update-cli --host 127.0.0.1 --user postgres --password '...' --database clubis --full --dry-run
Windows (cmd):
"C:\Program Files (x86)\ClubIS\Fitness 3\update.exe" --host 127.0.0.1 --user postgres --password ... --database clubis --full --dry-run
Затем накатите с отключением сессий.
Linux:
export CLUBIS_PG_SUPERUSER=postgres
export CLUBIS_PG_SUPERPASSWORD='...'
clubis-update-cli --host 127.0.0.1 --user postgres --password '...' --database clubis --full --disconnect-clients
Windows (cmd):
set CLUBIS_PG_SUPERUSER=postgres
set CLUBIS_PG_SUPERPASSWORD=...
"C:\Program Files (x86)\ClubIS\Fitness 3\update.exe" --host 127.0.0.1 --user postgres --password ... --database clubis --full --disconnect-clients
--full делает то же, что кнопка Обновить в модуле «Обновление»: схема базы, отчёты, Mobile API и emoji.
--disconnect-clients сначала просит открытые сессии ClubIS завершиться, ждёт (по умолчанию 60 секунд, можно изменить --drain-timeout), затем принудительно отключает оставшиеся подключения к этой базе. Вручное отключение — удалённое отключение пользователей.
Если шаг требует прав суперпользователя PostgreSQL, задайте их переменными окружения CLUBIS_PG_SUPERUSER и CLUBIS_PG_SUPERPASSWORD, а не через аргументы командной строки (так пароль не попадает в список процессов).
clubis-update-cli --host 127.0.0.1 --user postgres --password '...' --databases clubis,clubis2,clubis3 --full --disconnect-clients
На Windows тот же набор ключей, только вместо clubis-update-cli укажите update.exe.
Каждая база обновляется отдельно. Если одна не удалась, остальные всё равно будут обработаны; команда вернёт ошибку, если хотя бы одна база не обновилась.
Чтобы станции Windows сами подтянули программу из базы, загрузите файлы в справочник «Файлы для локального обновления».
Команда сама скачивает с портала поддержки архив программы для Windows-станций, распаковывает и заливает во все указанные базы. Если в базе уже лежит эта же версия файлов, загрузка для неё пропускается.
Нужен ключ доступа к порталу поддержки: из Администратор → Параметры → Общие (берётся из первой базы в списке) или переменная окружения CLUBIS_SUPPORT_KEY.
Linux:
clubis-update-cli --host 127.0.0.1 --user postgres --password '...' --databases clubis,clubis2 --sync-workstation-files
Windows (cmd):
set CLUBIS_SUPPORT_KEY=...
"C:\Program Files (x86)\ClubIS\Fitness 3\update.exe" --host 127.0.0.1 --user postgres --password ... --databases clubis,clubis2 --sync-workstation-files
Если архив уже распакован на диске, можно загрузить папку напрямую (не MSI и не ZIP):
clubis-update-cli --host 127.0.0.1 --user postgres --password '...' --databases clubis,clubis2 --upload-local-files /opt/clubis-dist
На Windows укажите папку с распакованной программой, например --upload-local-files "C:\Program Files (x86)\ClubIS\Fitness 3".
--sync-workstation-files и --upload-local-files одновременно указывать нельзя.
Настройка автоматического обновления станций — в статье Обновление для Windows.
Ночью удобно одним сценарием: обновить пакеты ClubIS на сервере, загрузить файлы для станций, накатить базу.
Пример скрипта /usr/local/sbin/clubis-nightly-update.sh:
#!/bin/bash
set -euo pipefail
export CLUBIS_PG_SUPERUSER=postgres
export CLUBIS_PG_SUPERPASSWORD='...'
# если ключ не задан в Администратор → Параметры → Общие:
# export CLUBIS_SUPPORT_KEY='...'
sudo apt-get update
sudo apt-get install -y clubis-fitness-update-cli
/usr/bin/clubis-update-cli --host 127.0.0.1 --user postgres --password '...' \
--databases clubis,clubis2 \
--sync-workstation-files \
--full --disconnect-clients
apt-get install обновит пакет командной строки. Остальные серверные модули ClubIS ставьте тем же apt-get, что и обычно — см. установку программных модулей для Linux.
Cron:
0 3 * * * /usr/local/sbin/clubis-nightly-update.sh >> /var/log/clubis-update-cli.log 2>&1
.cmd с переменными среды и вызовом update.exe. В команду добавьте --sync-workstation-files --full --disconnect-clients (та же последовательность, что в скрипте на Linux)..cmd, рабочая папка — C:\Program Files (x86)\ClubIS\Fitness 3.update.exe напрямую в задаче, а ключи — в аргументах; тогда переменные среды задайте в свойствах задачи или в системе.Ход выполнения пишется в журнал модуля «Обновление» (папка clubis-logs в профиле пользователя, под которым работает задача).
Ту же команду можно запустить вручную днём: будет короткий простой, пока сессии отключатся и накатывается база.