Миграция объектов базы данных П ассворка
Пропустить данный этап если используется Стандартная установка (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=
Создание и заполнение файла encryption_key
Используются переключаемые блоки кода для разделения команд операционных систем Linux и Windows Server.
Создать файл encryption_key:
- Linux
- Windows
touch /var/www/init/encryption_key
New-Item -ItemType File -Path "C:\inetpub\wwwroot\passwork\init\encryption_key" -Force
В созданном файле необходимо указать значение secret из config.ini:
- encryption_key
base64:fin2GvYi7V2X4bxg3bfrmx1dB/SEqXIBWOOysqCkJbY=
Миграция базы данных Пассворка
Описание
Миграция предназначена для переноса всех данных из устаревшей базы данных Пассворка в новую. В ходе миграции буд ет выполнено:
- Создание новых объектов в соответствии с актуальной структурой данных;
- Перенос существующих данных с сохранением их целостности;
- Актуализация и оптимизация всех объектов базы данных Пассворка.
Миграция гарантирует, что все данные будут успешно перенесены без потерь, а Пассворк 7 версии сможет полноценно работать с обновлённой базой данных.
Запуск миграции
Windows Server
Перейти в корневое расположение Пассворка:
- PowerShell
cd "C:\inetpub\wwwroot\passwork"
Запустить миграцию командой:
- PowerShell
php -d "memory_limit=-1" .\bin\console database:v6:migration
Linux
В зависимости от о перационной системы, миграцию следует запускать от имени пользователя, под которым работает веб-сервер Apache
- DEB
- RPM
sudo -u www-data bash -c 'cd /var/www && yes | php -d memory_limit=-1 ./bin/console database:v6:migration'
sudo -u apache bash -c 'cd /var/www && yes | php -d memory_limit=-1 ./bin/console database:v6:migration'
Пример выполнения и корректного завершения миграции:

После завершения эти параметры в config.env больше не нужны и их можно удалить:
- shell
MIGRATION_DATABASE_URL=
MIGRATION_DATABASE_DB=
MIGRATION_DATABASE_USERNAME=
MIGRATION_DATABASE_PASSWORD=
Последний этап для шифрования по умолчанию завершён и Пассворк можно использовать для работы.
Пожалуйста, ознакомьтесь с действиями после миграции