> For the complete documentation index, see [llms.txt](https://docs.iexexchanger.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.iexexchanger.com/ustanovka-i-obnovlenie/obnovlenie/obnovlenie-s-11.3-na-11.4.md).

# Обновление с 11.3 на 11.4

Эта инструкция описывает полный процесс обновления iEXExchanger с версии 11.3 до версии 11.4.

Перед началом ознакомьтесь со всеми этапами и выполняйте их последовательно. Не пропускайте резервное копирование, проверку базы данных и финальную проверку после обновления.

{% hint style="warning" %}
Для версии 11.4 проект должен работать с PostgreSQL 18. Если проект всё ещё использует MySQL или MariaDB, сначала выполните миграцию базы данных и только после этого запускайте Product Updates для версии 11.4.
{% endhint %}

## Проверка базы данных перед обновлением

Начиная с версии 11.3 основной базой данных iEXExchanger является PostgreSQL 18.

Перед обновлением определите, какая база данных сейчас используется проектом.

<table><thead><tr><th width="191.87890625">Текущая база</th><th>Что делать</th><th>Обновление до 11.4</th></tr></thead><tbody><tr><td><strong>PostgreSQL 18</strong></td><td>Дополнительная миграция не требуется</td><td>Можно продолжать обновление</td></tr><tr><td><strong>MySQL / MariaDB</strong></td><td>Сначала выполнить миграцию на PostgreSQL 18</td><td>Product Updates пока не запускать</td></tr></tbody></table>

{% stepper %}
{% step %}

### Если проект уже работает на PostgreSQL 18

Если миграция была выполнена при обновлении до версии 11.3 и проект уже работает с PostgreSQL 18, повторно переносить данные не требуется.

Продолжайте обновление по этой инструкции.
{% endstep %}

{% step %}

### Если проект всё ещё работает на MySQL или MariaDB

Если проект продолжает использовать MySQL или MariaDB, миграция, предусмотренная при переходе на 11.3, не была завершена.

Для переноса используйте инструкцию миграции MySQL/MariaDB на PostgreSQL 18, предусмотренную для обновления до версии 11.3.

{% content-ref url="/pages/SGowonUzPp28JJfZQj0e" %}
[Обновление с 11.2 на 11.3](/ustanovka-i-obnovlenie/obnovlenie/obnovlenie-s-11.2-na-11.3.md)
{% endcontent-ref %}

{% hint style="danger" %}
Не запускайте `php artisan product-updates:run --to=11.4`, пока миграция на PostgreSQL 18 не завершена и перенесённые данные не прошли проверку.

Не запускайте Product Updates для пустой PostgreSQL-базы. Миграция данных и Product Updates — разные этапы.
{% endhint %}

Исходную MySQL или MariaDB после переноса не удаляйте. Сохраните её для контрольной проверки и возможного возврата до начала записи новых данных в PostgreSQL.
{% endstep %}
{% endstepper %}

***

## Резервное копирование

Перед обновлением обязательно создайте резервную копию файлов Frontend, Backend и используемой базы данных.

Резервная копия потребуется, если во время обновления возникнет ошибка или понадобится вернуть проект в предыдущее состояние.

{% stepper %}
{% step %}

### Резервная копия файлов

В FastPanel откройте файловый менеджер и найдите директории Frontend и Backend вашего проекта.

Создайте архивы текущих файлов и сохраните их вне рабочего каталога проекта. По возможности храните копию также вне самого сервера.

Особенно важно сохранить пользовательские файлы и текущую конфигурацию проекта.
{% endstep %}

{% step %}

### Резервная копия базы данных

Если проект уже работает на PostgreSQL 18, создайте резервную копию текущей PostgreSQL-базы.

Если проект всё ещё использует MySQL или MariaDB и перед обновлением будет выполняться миграция, сохраните исходную базу до начала переноса.

{% hint style="danger" %}
Не начинайте обновление без актуальной резервной копии файлов и базы данных.

Перед продолжением убедитесь, что созданные копии действительно доступны для восстановления.
{% endhint %}

Если вы не уверены, что резервное копирование выполнено правильно, сначала уточните процедуру у технической поддержки вашего хостинг-провайдера.
{% endstep %}
{% endstepper %}

{% content-ref url="/spaces/uyjsNtEAtO6Sby8CHWyD/pages/OfLcDFWH4NaDvTwPEkDD" %}
[Как создать резервную копию в FastPanel](/help-center/administrirovanie/obsluzhivanie/kak-sozdat-rezervnuyu-kopiyu-v-fastpanel.md)
{% endcontent-ref %}

***

## Перевод сайта в режим обслуживания

Перед началом обновления необходимо временно остановить работу обменного пункта.

Для этого в административной панели активируйте режим обслуживания.

Это позволит:

* исключить создание новых заявок;
* избежать конфликтов во время обновления;
* предотвратить ошибки при работе пользователей с системой.

После завершения обновления режим обслуживания можно будет отключить.

<figure><img src="/files/ikieHw6BWLMm12gUYYBi" alt="" width="563"><figcaption></figcaption></figure>

## Подготовка файлов к обновлению

Перед загрузкой новой версии необходимо удалить часть файлов текущей установки.

Данная процедура позволяет избежать конфликтов между файлами предыдущего и нового релиза.

{% stepper %}
{% step %}

### Очистка Frontend

Перейдите в директорию основного сайта.

Пример: `ваш_домен`&#x20;

Удалите следующие папки:

```
dist
logs
```

<figure><img src="/files/PdteijinVPcGp99GU9mB" alt="" width="375"><figcaption></figcaption></figure>

**Назначение папок**

<table><thead><tr><th width="170.765625">Папка</th><th>Назначение</th></tr></thead><tbody><tr><td>dist</td><td>Скомпилированная версия Frontend</td></tr><tr><td>logs</td><td>Журналы работы Frontend</td></tr></tbody></table>

После обновления данные директории будут автоматически созданы заново.
{% endstep %}

{% step %}

### Очистка Backend

Перейдите в директорию Backend.

Пример: `app.ваш_домен`&#x20;

Удалите следующие папки:

```
app
bootstrap
config
database
packages
resources
routes
vendor
```

<figure><img src="/files/K3CF9mlFjVc5C9Ms6DNv" alt=""><figcaption></figcaption></figure>

{% hint style="info" %}

#### Важно

Перед удалением обязательно убедитесь, что вы находитесь именно в директории Backend.

Удаление файлов в неправильной директории может привести к повреждению проекта.
{% endhint %}
{% endstep %}

{% step %}

### Не удаляйте следующие папки

<mark style="color:red;">**Никогда не удаляйте:**</mark>

```
public
storage
```

В данных директориях хранятся:

* пользовательские изображения;
* загруженные файлы;
* документы;
* экспортированные данные;
* служебные файлы системы;
* пользовательский контент.

<mark style="color:red;">**Удаление этих папок может привести к потере данных.**</mark>
{% endstep %}
{% endstepper %}

{% hint style="danger" %}

### Важно

Не забудьте скачать файлы лицензии.

Они обязательны для полной установки обновления. После загрузки и распаковки архивов обновления необходимо также загрузить файлы лицензии в папку backend.

Без файлов лицензии обновление может быть установлено не полностью или работать некорректно.
{% endhint %}

{% content-ref url="/pages/hSsHgydQTzax5c06kVsd" %}
[Файлы лицензии и релизы](/nachalo-raboty/faily-licenzii-i-relizy.md)
{% endcontent-ref %}

***

## Загрузка файлов обновления

Для обновления используются два архива:

```
iexexchanger_frontend_update.zip
iexexchanger_backend_update.zip
```

Каждый архив предназначен для своей части системы.

{% stepper %}
{% step %}

### Архив Frontend

Загрузите: `iexexchanger_frontend_update.zip`&#x20;

в директорию основного сайта: `ваш_домен`
{% endstep %}

{% step %}

### Архив Backend

Загрузите: `iexexchanger_backend_update.zip`&#x20;

в директорию Backend: `app.ваш_домен`
{% endstep %}

{% step %}

### Способы загрузки

Вы можете использовать:

* FastPanel;
* FileZilla;
* WinSCP;
* SFTP;
* SCP.

Рекомендуется выполнять загрузку от имени пользователя сайта.

Использование пользователя root не рекомендуется.
{% endstep %}

{% step %}

### Распаковка архивов

После загрузки архивов:

1. Найдите архив в нужной директории.
2. Выполните распаковку.
3. Подтвердите замену существующих файлов, если система запросит подтверждение.

Замена файлов является стандартной частью процесса обновления.
{% endstep %}

{% step %}

### Проверка после распаковки

Убедитесь, что:

* архивы успешно распакованы;
* новые файлы появились в системе;
* не возникло ошибок файлового менеджера;
* файлы находятся непосредственно в рабочей директории проекта.

После завершения данного этапа можно переходить к установке обновления.
{% endstep %}
{% endstepper %}

## Миграция на PostgreSQL 18

Этот этап выполняется **только для проектов, которые всё ещё работают на MySQL или MariaDB**.

Если проект уже использует PostgreSQL 18 после обновления до версии 11.3, пропустите этот раздел.

Выполните миграцию по инструкции перехода на PostgreSQL 18 для версии 11.3.

{% content-ref url="/pages/SGowonUzPp28JJfZQj0e" %}
[Обновление с 11.2 на 11.3](/ustanovka-i-obnovlenie/obnovlenie/obnovlenie-s-11.2-na-11.3.md)
{% endcontent-ref %}

Только после этого переходите к Product Updates версии 11.4.

{% hint style="danger" %}
Product Updates не переносит данные из MySQL или MariaDB в PostgreSQL автоматически.

Не запускайте обновление 11.4 для пустой PostgreSQL-базы в расчёте на автоматическую миграцию.
{% endhint %}

## Применение обновления

После загрузки файлов необходимо выполнить обновление через SSH.

Если вы ранее не работали с SSH, воспользуйтесь отдельной инструкцией по подключению к серверу.

{% content-ref url="/spaces/uyjsNtEAtO6Sby8CHWyD/pages/cCEoFDjTDIufy3NUEakd" %}
[Подключение к серверу по SSH](/help-center/upravlenie-serverom/podklyuchenie-k-serveru-po-ssh.md)
{% endcontent-ref %}

{% stepper %}
{% step %}

### Переход в директорию Backend

Подключитесь к серверу и выполните команду:

```
cd www/app.ваш_домен
```

или

```
cd /var/www/имя_пользователя_backend/data/www/app.ваш_домен
```

Используйте фактический путь вашего проекта.
{% endstep %}

{% step %}

### Выполнение команд обновления

Выполняйте команды строго в указанном порядке.

**Установка обновления**

```
php artisan product-updates:run --to=11.4
```

Применяет все изменения новой версии системы.

Выполняет обновление файловых источников курсов.
{% endstep %}

{% step %}

### Проверка Product Updates и PostgreSQL

После успешного выполнения проверьте состояние последних обновлений:

```
php artisan product-updates:status --limit=5
```

Проверьте подключение Laravel к PostgreSQL:

```
php artisan db:show --database=pgsql
```

Команды должны завершиться без ошибок подключения к базе данных.
{% endstep %}

{% step %}

### Если команда завершилась с ошибкой

Ошибка может быть связана с:

* незавершённой миграцией на PostgreSQL;
* неправильными правами на файлы проекта;
* недостатком свободного места;
* отсутствием PHP-модулей `pdo_pgsql` или `pgsql`;
* недоступностью PostgreSQL;
* параллельно работающим процессом обновления.

В этом случае:

1. Сохраните полный текст ошибки.
2. Проверьте результат миграции и команды `verify`.
3. Устраните найденную причину.
4. Повторно выполните предварительную проверку.
5. После успешной проверки снова запустите обновление до 11.4.
   {% endstep %}
   {% endstepper %}

## Завершение обновления

После успешного выполнения всех команд рекомендуется выполнить финальные действия.

{% stepper %}
{% step %}

### Удаление архивов обновления

Удалите ранее загруженные архивы:

```
iexexchanger_frontend_update.zip
iexexchanger_backend_update.zip
```

Это позволит избежать случайного использования устаревших файлов в будущем.
{% endstep %}

{% step %}

### Перезагрузка сервера

Для применения всех изменений рекомендуется выполнить полную перезагрузку сервера.

Через SSH: `reboot`

или воспользуйтесь инструментами вашей панели управления.
{% endstep %}
{% endstepper %}

## Проверка и обновление конфигурации Nginx

Перед финальной проверкой сайта обязательно изучите актуальную инструкцию по настройке Frontend Nginx и внесите необходимые изменения в конфигурацию.

В версии 11.4 изменилась схема работы Nginx, поэтому старая конфигурация может работать некорректно.

Перейдите по ссылке на актуальную инструкцию:

{% content-ref url="/pages/E9WKesM7XwCwE0IsKTAh" %}
[Настройка Nginx](/ustanovka-i-obnovlenie/ustanovka/nastroika-fastpanel/nastroika-nginx.md)
{% endcontent-ref %}

Внимательно проверьте конфигурацию и приведите её к актуальной версии.

Особое внимание уделите:

* настройке проксирования Frontend на Angular SSR;
* отсутствию старых языковых редиректов в Nginx.

После внесения изменений сохраните конфигурацию, проверьте её корректность и перезапустите Nginx.

Только после этого переходите к проверке работы сайта.

## Если сайт не открывается после обновления

Наиболее распространённая причина — не был автоматически запущен Frontend через PM2 после перезагрузки сервера.

Проверьте состояние процессов:&#x20;

```
pm2 list
```

Если процесс отсутствует или находится в состоянии ошибки, воспользуйтесь инструкцией:

{% content-ref url="/spaces/uyjsNtEAtO6Sby8CHWyD/pages/0yytVCNPTqBInGY7hcgi" %}
[Как переустановить PM2?](/help-center/upravlenie-serverom/pm2/kak-pereustanovit-pm2.md)
{% endcontent-ref %}

## Перезагрузка сервера

После завершения обновления рекомендуется полностью перезагрузить сервер, чтобы все изменения вступили в силу.

Вы можете выполнить перезагрузку одним из способов.

{% stepper %}
{% step %}

### Через SSH

{% content-ref url="/spaces/uyjsNtEAtO6Sby8CHWyD/pages/cCEoFDjTDIufy3NUEakd" %}
[Подключение к серверу по SSH](/help-center/upravlenie-serverom/podklyuchenie-k-serveru-po-ssh.md)
{% endcontent-ref %}

Авторизуйтесь на сервере под пользователем root и выполните команду:

```bash
reboot
```

{% endstep %}

{% step %}

### Через FastPanel

Перейдите в раздел **«Настройки» → «Основное»** и нажмите **«Перезагрузить сервер»**.

После завершения перезагрузки дождитесь запуска всех сервисов и только затем переходите к проверке работоспособности сайта.
{% endstep %}
{% endstepper %}

## Возврат обменного пункта в работу

Отключайте режим обслуживания только после того, как основные проверки завершились успешно.

После проверки:

1. Отключите режим обслуживания.
2. Если перед миграцией или обновлением отдельно останавливались очереди, планировщики или другие процессы, верните их в работу.
3. Откройте клиентский сайт.
4. Проверьте возможность создания новой заявки.

Обновление можно считать завершённым, если Frontend и Backend доступны, приложение подключается к PostgreSQL, необходимые серверные процессы работают, а обменный пункт снова принимает новые заявки.

Если проект был переведён на PostgreSQL 18 ещё при обновлении до версии 11.3, повторная миграция при переходе на 11.4 не выполняется. Миграционный этап нужен только проектам, которые перед обновлением всё ещё используют MySQL или MariaDB.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.iexexchanger.com/ustanovka-i-obnovlenie/obnovlenie/obnovlenie-s-11.3-na-11.4.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
