# Миграция с ERP USERSIDE Возможна миграция с ERP Userside версии 3.12 и более новой. Убедитесь, что все необходимые [системные компоненты](/system_install) установлены. В зависимости от версии Userside, которую вы используете, у вас уже могут быть установлены те или иные компоненты. Убедитесь, что всё необходимое есть в наличии. Если чего-то не хватает — установите и выполните его настройку. Сделайте резервную копию своего Userside — файлов и базы данных. Это обязательный шаг, потому как успешная миграция на Cubalink не может быть гарантирована в полной мере. После того, как резервная копия выполнена, остановите работу cron (закомментируйте запуск userside cron и модулей), supervisor, nginx, php-fpm. ```shell sudo systemctl stop supervisor sudo systemctl stop nginx sudo systemctl stop php-fpm ``` Служба из последней команды может называться иначе, например, php7.1-fpm, в зависимости от версии PHP, которая у вас используется. (reconfigure)= ## Перенастройка для Cubalink Вам необходимо перенастроить установленные ранее для Userside компоненты. Первым делом переименуйте основной каталог: ```shell sudo mv /var/www/userside /var/www/erp ``` (php)= ### PHP Установите PHP 8.3 и все необходимые модули и выполните их настройку, как показано в разделах [Установка PHP](/system_install.md#php) и [Настройка PHP](/system_install.md#setup-php). (nginx)= ### Nginx Создайте каталог **/var/www/erp/public** и сделайте его владельцем пользователя www-data: ```shell sudo mkdir -p /var/www/erp/public sudo chown www-data:www-data /var/www/erp/public ``` Теперь нужно отредактировать файл настройки сервера NGINX. У вас он может называться по-разному или даже настройка для Userside может быть внутри какого-то другого файла конфигурации сервера. В самом простом случае вы можете удалить текущий файл и создать новый, как указано в [разделе про настройку Nginx после установки](/system_install.md#setup-nginx). Если вы решили отредактировать ваш существующий файл, то нужно внести следующие изменения: 1. **Web Root**. Строку: ```text root /var/www/userside/userside3; ``` заменить на строку: ```text root /var/www/erp/public; ``` 2. **Корневой `location /`**. Строку: ```text try_files $uri $uri/ =404; ``` заменить на строку: ```text try_files $uri $uri/ /index.php$is_args$args; ``` 3. **`fastcgi_pass` для php-fpm**. Строку (у вас может быть другая версия): ```text fastcgi_pass unix:/run/php/php8.1-fpm.sock; ``` заменить на строку: ```text fastcgi_pass unix:/run/php/php8.3-fpm.sock; ``` (websocket-user)= ### Websocket пользователь Если вы установили RebbitMQ только что перед процедурой миграции и создали всех пользователей по инструкции, то следующие команды не выполняйте и переходите к следующему разделу. Если у вас Userside 3.17 и новее, то вероятней всего пользователь для websocket у вас уже есть. Если вы сомневаетесь, есть ли у вас уже пользователь для websocket, выполните команду: ```shell sudo rabbitmqctl list_users ``` Если среди пользователей вы видите пользователя с именем похожим на websock или на stomp, вероятно такой пользтватель уже есть. Посмотрите, какие права он имеет (вместо `имя_пользователя` укажите имя найденного пользователя): ```shell sudo rabbitmqctl list_user_permissions имя_пользователя ``` Если в результате вы видите права доступа вроде таких: ``` user configure write read websocket ^userside-stomp:id-.* ^userside-stomp:id-.* ``` то это точно означает, что пользователь для websocket у вас уже есть. В этом случае вам нужно изменить права доступа, выполнив следующие команды: ```shell sudo rabbitmqctl clear_permissions имя_пользователя sudo rabbitmqctl set_permissions имя_пользователя "^erp-stomp:id-.*" "" "^erp-stomp:id-.*" ``` Здесь также не забудьте указать имя настоящего пользователя вместо `имя_пользователя`. (postgres-upgrade)= ### Postgres Рекомендуется использовать последние стабильные версии PostgreSQL, так как помимо расширения функциональности они в некоторых случаях работают заметно быстрее. Вы можете обновить [кластер](https://www.postgresql.org/docs/current/glossary.html) (так называется набор баз данных даже на одном сервере, даже если база данных одна) на последнюю версию. Для этого существуют готовые скрипты под debian и ubuntu из пакета [postgresql-common](https://packages.debian.org/sid/postgresql-common). Документация по обновлению кластера от Postgres: ````{warning} Не забудьте об обязательном резервном копировании баз данных перед подобными операциями. ```` (restart-services)= ## Перезапуск служб После редактирования конфигурации нужно перезапустить все затронутые службы: ```shell sudo systemctl restart php8.3-fpm sudo systemctl restart nginx ``` (run-migration)= ## Запуск процедуры миграции Процедура миграции ничем не отличается от процедуры новой инсталляции. Поэтому вы можете обратиться к главе [Установка ERP](/erp_install.md) и выполнять все действия последовально из нее (кроме создания каталога /var/www/erp, так как он у вас уже существует).