Перейти к основному содержимому
Версия: 7.0

Миграция объектов базы данных Пассворка

осторожно

Пропустить данный этап если используется Стандартная установка (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 https://repos.passwork.ru/repository/linux/scripts/config_convert.sh

Назначить скрипту права на исполнение:

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, проверяя их корректность.

Назначить пользователя веб-сервера владельцем для сконвертированных файлов:

chown www-data:www-data /var/www/init/*
Windows Server

Получить скрипт для автоматической генерации файлов:

(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

warning

Используются переключаемые блоки кода для разделения команд операционных систем Linux и Windows Server.

Создать конфигурационный файл Пассворка:

touch /var/www/init/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

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

warning

Используются переключаемые блоки кода для разделения команд операционных систем Linux и Windows Server.

Создать файл encryption_key:

touch /var/www/init/encryption_key

В созданном файле необходимо указать значение secret из config.ini:

base64:fin2GvYi7V2X4bxg3bfrmx1dB/SEqXIBWOOysqCkJbY=

Миграция базы данных Пассворка

Описание

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

  • Создание новых объектов в соответствии с актуальной структурой данных;
  • Перенос существующих данных с сохранением их целостности;
  • Актуализация и оптимизация всех объектов базы данных Пассворка.

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

Запуск миграции

Windows Server

Перейти в корневое расположение Пассворка:

cd "C:\inetpub\wwwroot\passwork"

Запустить миграцию командой:

php -d "memory_limit=-1" .\bin\console database:v6:migration
Linux
к сведению

В зависимости от операционной системы, миграцию следует запускать от имени пользователя, под которым работает веб-сервер Apache

sudo -u www-data bash -c 'cd /var/www && yes | php -d memory_limit=-1 ./bin/console database:v6:migration'

Пример выполнения и корректного завершения миграции:

Пример запуска и выполнения миграции объектов базы данных

После завершения эти параметры в config.env больше не нужны и их можно удалить:

MIGRATION_DATABASE_URL=
MIGRATION_DATABASE_DB=
MIGRATION_DATABASE_USERNAME=
MIGRATION_DATABASE_PASSWORD=

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

осторожно

Пожалуйста, ознакомьтесь с действиями после миграции