---
title: Обновление установки — что вы видите и что нужно делать
description: Что происходит при обновлении TSync: проверки перед стартом, экран прогресса, что означает прерванное обновление и почему из-за него никогда не нужно восстанавливать резервную копию.
product: TSync Intelligence 11.3.6
language: ru
canonical: https://docs.tsync.pro/ru/updating-your-installation/
source: https://docs.tsync.pro/llms.txt
---

# Обновление установки

Обновление TSync — это две вещи, именно в таком порядке: **новые файлы попадают на сервер**, затем **база
данных подтягивается к ним**. Эта страница проходит по обоим шагам и, что важнее, объясняет, что именно
говорят вам экраны по ходу дела.

Коротко: **обновление можно прервать в любой момент, и ничего не потеряется.** Начинать заново не придётся
никогда, и никогда не следует восстанавливать резервную копию только потому, что страница выглядела странно.

---

## Прежде всего: сделайте резервную копию

Не потому, что обновление рискованно — каждый шаг рассчитан на безопасное повторение — а потому, что точка
восстановления это единственное, что может отменить решение, о котором вы позже пожалеете.

Теперь TSync её требует. При открытии экрана обновления сначала выполняется короткий список проверок, и самая
первая — *«есть ли резервная копия и насколько она старая?»*. Если её нет вообще, проверка отмечается красным,
а в сводке написано **«1 needs your confirmation»**.

**Резервную копию можно сделать прямо там**, с экрана обновления, кнопкой *Take a database backup now*. Если
ваш хостинг не позволяет встроенному механизму работать — часть виртуальных хостингов его блокирует — экран
скажет об этом прямо и предложит сделать копию из панели управления хостингом.

**Либо можно принять риск и продолжить.** Отсутствующая копия — единственный красный пункт, о котором решаете
вы сами: отметьте подтверждение над кнопкой — *«I accept the risk marked in red above and want to continue
anyway»* — и обновление запустится. Все остальные красные пункты описывают состояние сервера (слишком старый
PHP, папка, в которую обновление не может писать, оставшиеся файлы-дубликаты), и никакое подтверждение их не
изменит: кнопка останется выключенной, пока они не исправлены по-настоящему.

---

## Шаг 1 — новые файлы на сервере

Загрузите архив релиза в папку `temp/` и дайте TSync распаковать его за вас.

1. Загрузите `tsync-erp-vX.Y.Z-….zip` в `temp/` (по FTP или через файловый менеджер хостинга).
2. Создайте одноразовый файл-ключ. Подойдёт любой случайный текст; через SSH:

   ```
   printf '%s' "$(openssl rand -hex 16)" > temp/tsync-upgrade.allow
   ```

   Если SSH нет, создайте `temp/tsync-upgrade.allow` в файловом менеджере и вставьте туда любой длинный
   случайный текст.

3. Откройте `https://ваш-домен/tsync_upgrade/index/` и добавьте ровно этот текст.
4. Выберите архив и нажмите **Extract**.

### Что он делает за вас, чтобы вам не пришлось это помнить

- Сначала переводит сайт в режим обслуживания, чтобы никто не попал на наполовину заменённую установку.
- Распаковывает всё, **кроме** ваших загруженных файлов, логотипа и оформления, настроек базы данных, кэшей и
  журналов. Их не трогают никогда — этот список зашит в продукт, а не держится в голове у того, кто
  разворачивает обновление.
- В том же проходе убирает папку установщика. (Оставленная на месте, она намеренно отключает сайт —
  установщик, доступный из интернета, это реальная опасность.)
- Очищает файловый кэш PHP, чтобы новый код заработал сразу, а не после какой-то будущей перезагрузки.
- Кладёт заметки о релизе туда, где их ищет экран обновления.
- **Запирается снова.** Файл-ключ удаляется, поэтому адрес нельзя использовать повторно. В следующий раз
  создайте новый.

Есть и режим **только предпросмотр**: он покажет, что именно изменилось бы, и не запишет ничего.

---

## Шаг 2 — база данных подтягивается

После распаковки перейдите по ссылке, которую даст страница. Она ведёт в админ-панель и, что важно, несёт
ключ, пропускающий вас через страницу обслуживания, пока остальные ещё закрыты.

Вы увидите **Database upgrade required** с версией, с которой вы уходите, и той, к которой идёте.

### Перед запуском

Разверните **Before you start**. Каждая строка — либо в порядке, либо стоит посмотреть, либо требует
исправления:

| Проверка | Почему это важно |
| --- | --- |
| Резервная копия базы | Единственный путь назад. Отмечается красным, если копии не было никогда, — но можно отметить подтверждение и продолжить. |
| Инструмент резервного копирования | Может ли сервер вообще сделать копию за вас. |
| Версия PHP и расширения | Обновлению они нужны; их отсутствие останавливает процесс чисто, а не на середине. |
| Время выполнения | Не проблема — именно оно определяет длительность каждого прохода. |
| Свободное место на диске | Копии и архиву нужно место. |
| Права в базе данных | Обновление создаёт и меняет таблицы. Проверяется по-настоящему, на служебной таблице. |
| Файлы миграций | Ловит дубликаты, оставшиеся от прошлого обновления, — иначе они остановят всё. |
| Права на папки | Папки, в которые обновление пишет. |

### Что будет выполнено

Разверните **What will run**, чтобы увидеть точный список шагов, каждый со своей версией, и пометку на тех,
что меняют структуру базы. На этот момент не выполнено ничего — список только сокращается по ходу обновления.

### Запуск

Нажмите **Run upgrade now**. Появится индикатор прогресса, который двигается по мере завершения шагов.

Работа идёт **короткими проходами**. TSync читает, сколько времени ваш хостинг отводит одной странице,
останавливается заметно раньше этого предела и продолжает автоматически. Он никогда не начинает шаг, который
не успеет закончить. На очень старой установке шагов могут быть сотни, а проходов много — это нормально, и вы
видите, как это происходит.

---

## Если обновление прервалось

**Этот раздел стоит прочитать дважды.**

Если оборвалась связь, закрылась страница, уснул ноутбук или хостинг оборвал запрос, вы можете увидеть ошибку
или просто ничего. **Это прерывание, а не сбой.**

Каждый шаг записывает себя в тот момент, когда завершается. Поэтому:

1. Снова откройте админ-панель.
2. Экран теперь скажет *«The upgrade was interrupted, not failed»* и покажет, до какого шага дошло.
3. Нажмите **Continue the upgrade**.

Процесс продолжится с этого места. Он не повторяет сделанное и не начинает заново.

> **Не восстанавливайте резервную копию из-за прерванного обновления.** Вы выбросите уже успешно выполненную
> работу. Восстановление нужно для решения, которое вы хотите отменить, а не для страницы, которая выглядела
> странно.

Если шаг действительно упал, экран скажет, какой именно и почему, а всё сделанное до него останется
применённым. Устраните причину и нажмите Continue.

---

## Что видят клиенты и посетители

Пока обновляется база данных, все остальные посетители получают короткую страницу **«Maintenance in
progress»** с корректным техническим статусом, чтобы браузеры и поисковые системы знали, что нужно вернуться
позже, а не фиксировали ошибку.

Она снимается сама по завершении обновления. И **истекает самостоятельно** — так что даже если обновление
полностью оборвётся на середине, сайт не может остаться закрытым навсегда.

Вас это не касается: ссылка, по которой вы перешли из распаковщика, несёт ключ, пропускающий вас насквозь.

---

## С какой версии можно обновляться?

**Любая установка, начиная с поставляемой стартовой схемы, доходит до текущей версии за один прогон.** Без
обязательных остановок на промежуточных версиях.

Если версия старше или вы не уверены — используйте поэтапный путь из `UPGRADE.md` и сначала на копии. Если вы
переносите очень старую установку, свяжитесь с нами: это другая работа, нежели обновление, и Центр обновления
создан именно для неё.

---

## Одно действие вручную, один раз

В прежних релизах в корне сайта поставлялся файл **`opcache_reset.php`**. Он очищал кэш PHP, но не требовал
никакой авторизации, а такому не место в открытом доступе на публичном сайте.

Он больше не входит в релиз, и распаковщик теперь делает эту работу сам. **Но обновление только добавляет и
заменяет файлы — оно никогда ничего не удаляет.** Поэтому после обновления удалите `opcache_reset.php` из
корня сайта.

---

## Проверьте одну папку: она не должна открываться из интернета

В вашей установке есть папка **`tools/`**. В ней лежат два файла, которые страница **Здоровье** читает с
диска, чтобы понимать, о каких известных проблемах вас больше не предупреждать. Паролей в них нет — но в них
описано, какие внутренние проверки безопасности были отложены и в каких файлах, а это не то, что должен
иметь возможность скачать посторонний.

Отвечать по HTTP им никогда не требовалось. С этой версии в поставку входит правило, закрывающее папку —
и для **Apache**, и для **IIS**.

**Одна проверка, один раз, после обновления.** Откройте в браузере этот адрес, подставив свой домен:

```
https://ваш-домен.com/tools/release_quality_allowlist.json
```

- Должно появиться **«Forbidden»** или **«Not found»**. Это правильно.
- Если файл **скачивается или открывается**, ваш веб-сервер не читает правило из поставки. Обычно так на
  **nginx**. Попросите администратора сервера закрыть папку `tools/` в его конфигурации.

Это единственная часть исправления, которую нельзя сделать изнутри приложения: что отдавать наружу,
решает только ваш веб-сервер.

---

## После обновления

- Откройте админ-панель — версия в **Настройки → Info** должна быть новой.
- **Откройте и собственный клиентский портал**, а не только админ-панель. Достаточно страницы входа. Это
  единственный способ заметить целый класс проблем, который никогда не проявляется на той стороне, где вы
  работаете каждый день.
- Если что-то выглядит устаревшим, это почти всегда кэш. Кэш PHP чистит распаковщик; кэш браузера — жёсткая
  перезагрузка.
