Миграция объектов базы данных Пассворка
Пропустить данный этап если используется Стандартная установка (Docker или PowerShell-модуль) Пассворка.
Формирование файлов для 7 версии Пассворка
После обновления Пассворка на 7 версию, нужно создать и заполнить следующие файлы:
./init/config.env./init/encryption_key
./ — корневое расположение Пассворка:
- Windows Server — C:\inetpub\wwwroot\passwork
- Linux — /var/www
В процессе выполнения обновления Пассворка на 7 версию, создаётся копия конфигурационного файла (config.ini) в расположение:
- Windows Server —
C:\inetpub\wwwroot\config.ini - Linux —
/var/config.ini
Автоматическое создание и заполнение конфигурационных файлов Пассворка
Linux
Получить скрипт для автоматической генерации файлов:
- wget
- curl
wget https://repos.passwork.ru/repository/linux/scripts/config_convert.sh
curl -O https://repos.passwork.ru/repository/linux/scripts/config_convert.sh
Назначить скрипту права на исполнение:
- shell
chmod +x config_convert.sh
Перед запуском скрипта, пожалуйста, убедитесь в следующем.
- Если установка Пассворка выполнена в стандартном расположении
/var/www/и конфигурационный файлconfig.iniрасположен в ожидаемой директории/var/config.ini, запустить скрипт по умолчанию без аргументов. Пример:
sudo ./config_convert.sh
- Если установка Пассворка выполнена в отличном от стандартного
/var/www/расположения. Например в/var/www/passwork/,необходимо использовать аргумент--output(или-o), указав путь к директорииinitхранящей конфигурационные файлы. Пример:
sudo ./config_convert.sh --output /var/www/passwork/init
- Если конфигурационный файл
config.iniПассворка расположен в отличном от стандартного/var/config.iniрасположения. Например в/opt/config.ini, необходимо использовать аргумент--input(или-i), указав расположение файла. Пример:
sudo ./config_convert.sh --input /opt/config.ini
Скрипт преобразует файл config.ini в config.env и encryption_key, проверяя их корректность.
Назначить пользователя веб-сервера владельцем для сконвертированных файлов:
- DEB
- RPM
chown www-data:www-data /var/www/init/*
chown apache:apache /var/www/init/*
Windows Server
Получить скрипт для автоматической генерации файлов:
- PowerShell
(New-Object System.Net.WebClient).DownloadFile("https://repos.passwork.ru/repository/powershell/config_convert.ps1", "$PWD\config_convert.ps1")
Перед запуском скрипта, пожалуйста, убедитесь в следующем.
- Если установка Пассворка выполнена в стандартном расположении
C:\inetpub\wwwroot\passworkи конфигурационный файлconfig.iniрасположен в ожидаемой директорииC:\inetpub\wwwroot\config.ini, запустить скрипт по умолчанию без аргументов. Пример:
.\config_convert.ps1
- Если установка Пассворка выполнена в отличном от стандартного
C:\inetpub\wwwroot\passworkрасположения. Например вC:\inetpub\wwwroot\,необходимо использовать аргумент-outputDirectory, указав путь к директорииinitхранящей конфигураци онные файлы. Пример:
.\config_convert.ps1 -outputDirectory "C:\inetpub\wwwroot\init"
- Если конфигурационный файл
config.iniПассворка расположен в отличном от стандартногоC:\inetpub\wwwroot\config.iniрасположения. Например вC:\inetpub\config.ini, необходимо использовать аргумент-inputFile, указав расположение файла. Пример:
.\config_convert.ps1 -inputFile "C:\inetpub\config.ini"
Скрипт преобразует файл config.ini в config.env и encryption_key, проверяя их корректность.
Если при автоматическом создании и заполнении возникают ошибки, можно выполнить создание и заполнение файлов значениями вручную.
Ручное создание и заполнение конфигурационных файлов Пассворка
Создание и заполнение файла config.env
Используются переключаемые блоки кода для разделения команд операционных систем Linux и Windows Server.
Создать конфигурационный файл Пассворка:
- Linux
- Windows
touch /var/www/init/config.env
New-Item -ItemType File -Path "C:\inetpub\wwwroot\passwork\init\config.env" -Force
В созданном файл необходимо указать следующие строки:
- config.env
APP_URL=
MONGODB_URL=
MONGODB_DB=
MONGODB_USERNAME=
MONGODB_PASSWORD=
MIGRATION_DATABASE_URL=
MIGRATION_DATABASE_DB=
MIGRATION_DATABASE_USERNAME=
MIGRATION_DATABASE_PASSWORD=
Сопоставление и заполнение параметров из config.ini в config.env:
- APP_URL — Значение параметра domain в config.ini
- MONGODB_URL — Значение параметра connectionString в config.ini
- MONGODB_DB — Указать новое имя базы данных Пассворка (pw)
- Миграция выполнит создание, перенос, изменения и актуализацию данных всех объектов, которые расположены в устаревшей базе данных Пассворка;.
- Если авторизация в MongoDB не настроена, необходимо оставить параметры MONGODB_USERNAME, MONGODB_PASSWORD, MIGRATION_DATABASE_USERNAME и MIGRATION_DATABASE_PASSWORD пустыми.
- MONGODB_USERNAME — Значение параметра username в config.ini
- MONGODB_PASSWORD — Значение параметра password в config.ini
- MIGRATION_DATABASE_URL — Значение параметра connectionString в config.ini
- MIGRATION_DATABASE_DB — Значение параметра dbname в config.ini
- MIGRATION_DATABASE_USERNAME — Значение параметра username в config.ini
- MIGRATION_DATABASE_PASSWORD — Значение параметра password в config.ini
Если в config.ini указан параметр algorithm, выполнить этот шаг; если параметр не указан, пропустить его.
- ENCRYPTION_CIPHER — Значение параметра algorithm в config.ini
Если в config.ini указан параметр disableClientSide, выполнить этот шаг; если параметр не указан, пропустить его.
- IS_CLIENT_SIDE_ENCRYPTION_ENABLED=1
Пример заполненного конфигурационного файла config.env
- config.env
APP_URL=https://passwork.local
MONGODB_URL=mongodb://localhost:27017
MONGODB_DB=pw
MONGODB_USERNAME=
MONGODB_PASSWORD=
MIGRATION_DATABASE_URL=mongodb://localhost:27017
MIGRATION_DATABASE_DB=pwbox
MIGRATION_DATABASE_USERNAME=
MIGRATION_DATABASE_PASSWORD=