Оновлення до нової версії

Оновлення, після якого клуб працює далі: копія бази перед стартом, ваші налаштування на місці, відкат однією командою.

Правило перше — не оновлюватись перед вечором

Оновлюйтесь вранці або в вихідний день, коли зал порожній. Не о 18:00 у пʼятницю. Будь-яке оновлення має ненульовий шанс піти не так, і різниця лише в тому, скільки людей це побачить.

Як оновитись

Розпакуйте нову версію в окрему теку (наприклад C:\Install\cordarena\new) і запустіть на ПК сервера від адміністратора:

powershell -ExecutionPolicy Bypass -File C:\CordArena\Club\update-club.ps1 -From C:\Install\cordarena\new

Що робить скрипт:

  1. Робить копію бази перед оновленням. Міграції бази незворотні — після оновлення повернути стару версію без копії вже не вийде.
  2. Зберігає ваш appsettings.json. Порт, назва клубу, ключі, налаштування фіскалізації, Telegram — усе лишається вашим. Нова версія не кладе свій конфіг поверх.
  3. Відкладає поточну версію в C:\CordArena\Club.previous — для відкату.
  4. Кладе нову, піднімає службу, перевіряє, що сервер живий.
  5. Якщо не піднявся — відкочується сам, без вашої участі.

⚠️ Не використовуйте для оновлення install-club.ps1. Це скрипт першої установки.

Відкат

Якщо нова версія піднялась, але поводиться не так:

powershell -ExecutionPolicy Bypass -File C:\CordArena\Club\update-club.ps1 -Rollback

Повертається попередня версія з теки Club.previous, ваш конфіг лишається вашим.

⚠️ Відкат повертає програму, але не базу. Якщо нова версія встигла оновити схему бази, стара її вже не відкриє — і чесно про це скаже, замість того щоб мовчки втратити таблиці. Тоді поруч із відкатом треба відновити базу з копії, яку скрипт зробив перед оновленням: див. Копії бази і відновлення.

Яка версія стоїть зараз

Адреса /api/version показує версію програми і номер схеми бази. Це найкоротший спосіб переконатись, що оновлення справді доїхало, а служба не піднялась зі старої теки.

Агенти на ігрових ПК

Агент і замок оновлюються окремо — на кожній машині. Тут є одна річ, про яку треба знати заздалегідь.

Сервер і агент домовляються за номером протоколу — його видно у /api/version поруч із версією. Поки номер той самий, старі агенти чудово працюють із новим сервером, і зал можна оновлювати поступово: наприклад, коли машини перезавантажують зранку.

Якщо ж у новій версії номер протоколу змінився — старі агенти сервер не пустить, і скаже чому: «Версія протоколу 1, сервер працює з 2». Тоді зал треба оновити разом із сервером, одним заходом. Скрипт оновлення попереджає про це відразу після старту нової версії, а не залишає на здогад.

Тому просте правило: після оновлення сервера гляньте на карту залу. Якщо машини не повернулись на звʼязок за пару хвилин — це не «зависло», це протокол.