Продукты Р7
Корпоративный сервер 2024
Корпоративный сервер 2024
Сервер документов
Сервер документов
Редакторы документов
Редакторы документов
Корпоративный сервер 2019
Корпоративный сервер 2019
Графика
Графика
ВКС и мессенджер
ВКС и мессенджер
Мобильные редакторы
Мобильные редакторы
Почтовый сервер
Почтовый сервер
Органайзер
Органайзер
Сервер лицензирования
Сервер лицензирования
Файл-Экспресс
Файл-Экспресс
Аналитика
Аналитика
Дополнительно
Часто задаваемые вопросы
Разработчикам
Интеграции
Новые возможности

Миграция Корпоративный сервер 2019 docker версия в Корпоративный сервер 2024 docker версия релиз 2025.3.12.15877

Обновлено: 01.06.26
Миграция Корпоративный сервер 2019 docker версия в Корпоративный сервер 2024 docker версия релиз 2025.3.12.15877Обратите внимание

Дисклеймер о текущих ограничениях и известных ошибках

Настоящий документ содержит информацию о текущих ограничениях и известных ошибках, обнаруженных при использовании инструмента миграции данных из Корпоративного сервера 2019 (далее - КС2019) в Корпоративный сервер 2024 (далее – КС2024). Мы стремимся обеспечить высокий уровень качества нашего продукта, однако на данный момент выявлены следующие проблемы, которые могут повлиять на функционирование и предупреждаем о возможных рисках его использования:

1. Интерфейс и настройки доступа:
  • В интерфейсе настроек доступа в КС2024 не отображаются права пользователей на документы, наследуемые от прав папок: Некоторые права пользователей могут не отображаться в интерфейсе КС2024, что может вводить в заблуждение при работе с делегированием прав на документы. При просмотре прав на документ отображаются только права выданные непосредственно на документ, права наследованные от папок не отображаются.
2. Права администратора:
  • Не мигрирует встроенная УЗ Администратора КС2019: Возможно отсутствие доступа к важному функционалу для отдельных групп пользователей.
  • Не мигрируют права администратора, выданные пользователю портала: Права администратора, выданные пользователям для работы с модулями портала, не переносятся в КС2024. Возможно отсутствие доступа к важному функционалу для отдельных групп пользователей.
3. Документы и папки:
  • Не мигрируют права на документы, добавленные в папку Общие с правами на Чтение: Возможна потеря доступа к отдельным документам.
4. Атрибуты пользователей:
  • Некорректно мигрируют даты создания пользователей: Даты создания учетных записей могут быть неправильно перенесены, что может искажать некоторую личную информацию пользователей.
  • Не мигрируют руководители пользователей: Информация о руководителях пользователей может быть потеряна. Необходимо ручное восстановление атрибутов пользователей.
  • Не мигрируют должности пользователей: Информация о должностях пользователей может быть потеряна. Необходимо ручное восстановление атрибутов пользователей.
  • Некорректно мигрирует телефонный код: Телефонные коды могут быть неправильно перенесены. Необходимо ручное восстановление атрибутов пользователей.
5. Проблемы доступа к информации:
  • При миграции УЗ с правами Гость получает права на редактирование к некоторым документам: Учетные записи с правами только на чтение могут получать непредусмотренные права на редактирование к некоторым документам, что может нарушать политику прав доступа к корпоративной информации. Под «некоторыми документами» понимаются документы КС2019 из папки «Общие», полный доступ к которым был выдан группе «Все». Для обхода данной ошибки перед выполнением миграции требуется исключить все УЗ с правами Гость из группы «Все».
  • Не мигрируют внешние ссылки на документы и папки: Возможно отсутствие доступа к определенным документам для отдельных групп пользователей.

Примечание: Обращаем внимание, что инструмент миграции находится в стадии активной разработки. В связи с этим просим не проводить миграцию без предварительного тестирования на непродуктивном контуре. Мы активно работаем над исправлением указанных ошибок и улучшаем функциональность инструмента миграции. Рекомендуем вам следить за обновлениями и устанавливать последние версии для получения исправлений и улучшений.

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

1. Подготовка к миграции

1.1. Останавливаем сервер документов и создаем пользователя на сервере с КС2024

Смотрим container id контейнера с названием downloads.r7-office.ru:9011/r7office/ds/ds-app

docker ps

Для остановки сессий с документами выполняем скрипт внутри контейнера КС2024:

docker exec container_id_ds-app bash /usr/bin/documentserver-prepare4shutdown.sh

Аналогично завершаем сессии документов для КС2019:

docker exec r7 bash /usr/bin/documentserver-prepare4shutdown.sh

Проверяем, что файлы не открываются на редактирование.

1.2. Создаем пользователя для миграции и добавляем его в группу docker

Если группы docker нет

groupadd docker
useradd -u 1999 -G docker cddisk

Посмотреть uid и gid созданного пользователя:

id cddisk

Перезапустите службу docker, после создания группы и добавления пользователя cddisk

systemctl restart docker

2. Работы для интеграции на Корпоративном сервере 2019

2.1. Создаем пользователя cddisk с правами SELECT

2.1.1. Войдите в контейнер КС2019

docker exec -it r7 bash

2.1.2. Узнаём пароль от root MySQL командой

grep -oP 'Password=\K[^;]+' /var/www/r7-office/WebStudio/web.connections.config

2.1.3. Подключаемся к MySQL

mysql -u root -p

2.1.4. Создаем пользователя cddisk с правами SELECT

CREATE USER 'cddisk'@'ip_docker_cs24' IDENTIFIED WITH mysql_native_password BY 'StrongSecurityPassword';
GRANT SELECT ON `r7-office`.* TO 'cddisk'@'ip_docker_cs24';
FLUSH PRIVILEGES;
\q

Где:

  • ip_docker_cs24 — IP-адрес Корпоративного сервера 2024;
  • StrongSecurityPassword — пароль пользователя cddisk;
  • cddisk — пользователь, с доступом к БД;
  • r7-office — имя базы данных.

2.2. Предоставляем доступ к файлам

2.2.1. Устанавливаем nfs сервер

# .deb
apt install nfs-kernel-server -y
# .rpm
yum install nfs-utils nfs4-acl-tools
# ALT Linux
apt-get install nfs-server

2.2.2. Запускаем службу nfs

systemctl start nfs-server
systemctl enable nfs-server

2.2.3. Открываем файл /etc/exports

nano /etc/exports

2.2.4. Добавляем строку в файл /etc/exports

/mnt/r7/app/r7-office/www/r7-office/Data/Products/Files/ ip_docker_cs24/32(rw,nohide,all_squash,anonuid=1999,anongid=995,no_subtree_check)

Где:

  • ip_docker_cs24 — ip адрес сервера с докер версией Корпоративного сервера 2024;
  • anonuid=1999 — указываем id, если выполнялось создание нового пользователя cddisk;
  • anongid=995 — указываем id группы docker;

Путь в начале указывается до директории со структурой документов (в примере, если по умолчанию был выбран путь при установке Корпоративного сервера 2019, если нет, заменить /mnt/r7/ на фактический путь).

2.2.5. Примените изменения

exportfs -ra

3. Работы для интеграции на Корпоративном сервере 2024

3.1. Проверьте доступ к БД и NFS Корпоративного сервера 2019

telnet ip_address_cs19 3306
telnet ip_address_cs19 2049

Где:

  • ip_address_cs19 — ip сервера Корпоративный сервер 2019;
  • 3306 — порт для MySQL;
  • 2049 — порт NFS.

3.2. Настройка доступ к файлам

3.2.1. Установите клиент nfs

# .deb
apt install nfs-common -y
# .rpm
yum install nfs-utils
# ALT Linux
apt-get install nfs-utils

3.2.2. Создайте каталог для монтирования файлов с Корпоративного сервера 2019

mkdir /mnt/cs19

3.2.3. Внесем изменения в services.json

nano /opt/r7-office-docker/configs/processing/services.json
# Внесите имя каталога созданного в пункте 3.2.2 в "folder"
{
      "name": "CS.UserImport",
      "handlers": [
        {
          "name": "ExportDataFromCsMessageHandler",
          "type": "ExportDataFromCsMessageHandler",
          "subscriptionEndpoint": "Export.Data.From.Cs",
          "folder": "/mnt/cs19",
          "customer": 1,
          "useExchange": true,
          "degreeOfParallelism": 1
        },

3.2.4. Настройте автоматическое монтирование сетевой папки при загрузке сервера

nano /etc/fstab

Добавьте в файл содержимое

ip_address_cs19:/mnt/r7/app/r7-office/www/r7-office/Data/Products/Files/ /mnt/cs19 nfs defaults 0 2

Где:

  • ip_address_cs19 — ip сервера с Корпоративным сервером 2019;
  • /mnt/r7/app/r7-office/www/r7-office/Data/Products/Files/ — имя каталога, который сделали сетевым;
  • /mnt/cs19 — куда монтируется.

3.2.5. Примонтируйте сетевой каталог

systemctl daemon-reload
mount -a

3.3. Проверяем порты rabbitmq

Перед внесением изменений cкопируйте файл template.yaml в каталоге /opt/r7-office-docker/

cp template.yaml template.yaml.old

3.3.1. Откройте файл template.yaml, расположенный в каталоге /opt/r7-office-docker/

Проверяем в конфигурации cs-rabbitmq что порт 5672 публичный:

cs-rabbitmq:
  container_name: cs-rabbitmq
  environment:
    RABBITMQ_DEFAULT_PASS: guest
    RABBITMQ_DEFAULT_USER: guest
    RABBITMQ_NODE_PORT: '5672'
    r7_team_rabbit_pass: team
  hostname: cs-rabbit
  image: downloads.r7-office.ru:9011/r7office/cs/cddisk-rabbitmq:2025.3.12.15877
  networks:
  - net-cs
  ports:
  - mode: host
    protocol: tcp
    published: '5672'
    target: '5672'
  restart: unless-stopped

3.3.2. Добавляем rabbitmq management plugin (опционально)

Для мониторинга прогресса миграции добавляем rabbitmq management plugin публичный порт 15672 и включаем отображение метрик

cs-rabbitmq:
  container_name: cs-rabbitmq
  environment:
    RABBITMQ_DEFAULT_PASS: guest
    RABBITMQ_DEFAULT_USER: guest
    RABBITMQ_NODE_PORT: '5672'
    r7_team_rabbit_pass: team
    RABBITMQ_SERVER_ADDITIONAL_ERL_ARGS: "-rabbitmq_management_agent disable_metrics_collector false"
  hostname: cs-rabbit
  image: downloads.r7-office.ru:9011/r7office/cs/cddisk-rabbitmq:2025.3.12.15877
  networks:
  - net-cs
  ports:
  - mode: host
    protocol: tcp
    published: '5672'
    target: '5672'
  - mode: host
    protocol: tcp
    published: '15672'
    target: '15672'
  restart: unless-stopped
  command: >
    sh -c "
    rabbitmq-plugins enable rabbitmq_management &&
    docker-entrypoint.sh rabbitmq-server
    "

3.4. Добавляем файл appsettings.json и директорию внутрь контейнера

Смотрим container id контейнера с названием downloads.r7-office.ru:9011/r7office/cs/cddisk-processing

docker ps

3.4.1. Извлекаем файл из контейнера командой, находясь в директории r7-office

docker cp container_id_cddisk-processing:/opt/r7-office/Processing/appsettings.json ./

или заменив ./ на путь к директории r7-office-docker.

Откроем файл appsettings.json на редактирование и приводим строку "CommunityRepository" к виду:

"ConnectionStrings": {
  "R7StorageServerUserActions": "Database=postgres;Username=postgres;Password=pg_pass;Host=postgres;Port=5432;",
  "R7StorageServer": "Database=postgres;Username=postgres;Password=pg_pass;Host=postgres;Port=5432;",
  "CommunityRepository": "Server=ip_address_cs19;UserID=cddisk;Password=StrongSecurityPassword;Database=r7-office"

Где:

  • ip_address_cs19 — ip сервера с Корпоративным сервером 2019;
  • cddisk — пользователь и его пароль, созданный в пункте 2.1.3.

3.4.2. Добавляем volumes в файле template.yaml в блок cs-processing

cs-processing:
  container_name: cs-processing
  depends_on:
  - cs-registry
  - cs-searchapi
  - cs-filestorage
  - cs-rabbitmq
  - cs-postgres
  environment:
    r7_db_host: cs-psql
    r7_db_name: postgres
    r7_db_pass: pg_pass
    r7_db_port: '5432'
    r7_db_user: postgres
    r7_filestorage_host: cs-filestorage
    r7_filestorage_tcp_port: '11581'
    r7_rabbitmq_host: cs-rabbit
    r7_rabbitmq_pass: guest
    r7_rabbitmq_user: guest
    r7_registry_addr: http://cs-registry:7777
    r7_searchapi_addr: http://cs-search:2664
  hostname: cs-processing
  image: downloads.r7-office.ru:9011/r7office/cs/cddisk-processing:2025.3.12.15877
  networks:
  - net-cs
  - net-ds
  - net-mail
  restart: unless-stopped
  volumes:
  - source: /opt/r7-office-docker/configs/processing/filestorage.json
    target: /opt/r7-office/Processing/filestorage.json
    type: bind
  - source: /opt/r7-office-docker/configs/processing/filestorage_temp
    target: /var/r7-office/filestorage_temp_proc/
    type: bind
  #- source: /opt/r7-office-docker/configs/processing/appsettings.json
  #  target: /opt/r7-office/Processing/appsettings.json
  #  type: bind
  - source: /opt/r7-office-docker/configs/processing/services.json
    target: /opt/r7-office/Processing/services.json
    type: bind
  - source: /opt/r7-office-docker/configs/processing/nlog.config
    target: /opt/r7-office/Processing/nlog.config
    type: bind
  - source: ./support_logs/processing
    target: /var/log/r7-office/CDDisk/R7.Storage.Server.Processing.Host
    type: bind
  - source: /mnt/cs19
    target: /mnt/cs19
    type: bind
    read_only: true
  - source: /opt/r7-office-docker/appsettings.json
    target: /opt/r7-office/Processing/appsettings.json
    type: bind

4. Пересобираем контейнеры после внесения изменений

4.1. Пересобираем контейнеры после сохранения изменений внесенных template.yaml

docker compose -f template.yaml up -d && docker restart container_id_ds-app

5. Запускаем миграцию

5.1. Запускаем миграцию в браузере

Авторизуемся на портале и открываем в браузере адрес:

https://cddisk.domain.ru/api/v1/ExportFromCs/Start

Где:

  • cddisk.domain.ru — адрес модуля Р7-Диск у Корпоративный сервер 2024

5.2. Используем мониторинг прогресса миграции с помощью RabbitMQ

Открываем адрес в браузере и авторизуемся с помощью данных из пункта 3.3.2:

http://ip_docker_cs24:15672

Где:

  • ip_docker_cs24 — IP-адрес Корпоративного сервера 2024;
  • Import.User.From.Cs — очередь экспорnа пользователей;
  • Количество сообщений — это количество пользователей которые в процессе переноса;
  • Export.Data.From.Cs — очередь экспорта файлов.

Была ли эта статья полезной?

Поделитесь пожалуйста своим мнением

      В статье есть ошибкиРекомендации не помоглиТекст трудно понятьСодержание статьи не соответствует заголовкуДругое