Saltar al contenido principal

Migración de objetos de la base de datos de Passwork

peligro

Omita este paso si utiliza la Instalación estándar (Docker o módulo PowerShell) de Passwork.

Creación de archivos para Passwork versión 7

Después de actualizar Passwork a la versión 7, debe crear y completar los siguientes archivos:

  • ./init/config.env
  • ./init/encryption_key
peligro

./ — ubicación raíz de Passwork:

  • Windows Server — C:\inetpub\wwwroot\passwork
  • Linux — /var/www

Durante la actualización de Passwork a la versión 7, se crea una copia del archivo de configuración (config.ini) en la ubicación:

  • Windows Server — C:\inetpub\wwwroot\config.ini
  • Linux — /var/config.ini

Creación y llenado automático de archivos de configuración de Passwork

Linux

Descargue el script para la generación automática de archivos:

wget https://repos.passwork.pro/repository/linux/scripts/config_convert.sh

Otorgue permisos de ejecución al script:

chmod +x config_convert.sh
peligro

Antes de ejecutar el script, asegúrese de lo siguiente.

  • Si Passwork está instalado en la ubicación estándar /var/www/ y el archivo de configuración config.ini se encuentra en el directorio esperado /var/config.ini, ejecute el script de forma predeterminada sin argumentos. Ejemplo:
sudo ./config_convert.sh
  • Si Passwork está instalado en una ubicación no estándar diferente de /var/www/. Por ejemplo, en /var/www/passwork/, debe usar el argumento --output (o -o), especificando la ruta al directorio init que contiene los archivos de configuración. Ejemplo:
sudo ./config_convert.sh --output /var/www/passwork/init
  • Si el archivo de configuración de Passwork config.ini se encuentra en una ubicación no estándar diferente de /var/config.ini. Por ejemplo, en /opt/config.ini, debe usar el argumento --input (o -i), especificando la ubicación del archivo. Ejemplo:
sudo ./config_convert.sh --input /opt/config.ini
info

El script convierte el archivo config.ini en config.env y encryption_key, verificando su corrección.

Asigne el usuario del servidor web como propietario de los archivos convertidos:

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

Descargue el script para la generación automática de archivos:

(New-Object System.Net.WebClient).DownloadFile("https://repos.passwork.pro/repository/powershell/config_convert.ps1", "$PWD\config_convert.ps1")
peligro

Antes de ejecutar el script, asegúrese de lo siguiente.

  • Si Passwork está instalado en la ubicación estándar C:\inetpub\wwwroot\passwork y el archivo de configuración config.ini se encuentra en el directorio esperado C:\inetpub\wwwroot\config.ini, ejecute el script de forma predeterminada sin argumentos. Ejemplo:
.\config_convert.ps1
  • Si Passwork está instalado en una ubicación no estándar diferente de C:\inetpub\wwwroot\passwork. Por ejemplo, en C:\inetpub\wwwroot\, debe usar el argumento -outputDirectory, especificando la ruta al directorio init que contiene los archivos de configuración. Ejemplo:
.\config_convert.ps1 -outputDirectory "C:\inetpub\wwwroot\init"
  • Si el archivo de configuración de Passwork config.ini se encuentra en una ubicación no estándar diferente de C:\inetpub\wwwroot\config.ini. Por ejemplo, en C:\inetpub\config.ini, debe usar el argumento -inputFile, especificando la ubicación del archivo. Ejemplo:
.\config_convert.ps1 -inputFile "C:\inetpub\config.ini"
info

El script convierte el archivo config.ini en config.env y encryption_key, verificando su corrección.

info

Si ocurren errores durante la creación y el llenado automático, puede crear y completar los archivos manualmente con los valores.

Creación y llenado manual de archivos de configuración de Passwork

Creación y llenado del archivo config.env

aviso

Se utilizan bloques de código intercambiables para separar los comandos de los sistemas operativos Linux y Windows Server.

Cree el archivo de configuración de Passwork:

touch /var/www/init/config.env

En el archivo creado, especifique las siguientes líneas:

APP_URL=
MONGODB_URL=
MONGODB_DB=
MONGODB_USERNAME=
MONGODB_PASSWORD=

MIGRATION_DATABASE_URL=
MIGRATION_DATABASE_DB=
MIGRATION_DATABASE_USERNAME=
MIGRATION_DATABASE_PASSWORD=

Mapeo y llenado de parámetros de config.ini a config.env:

  • APP_URL — Valor del parámetro domain en config.ini
  • MONGODB_URL — Valor del parámetro connectionString en config.ini
  • MONGODB_DB — Especifique el nuevo nombre de la base de datos de Passwork (pw)
peligro
  • La migración creará, transferirá, modificará y actualizará todos los objetos ubicados en la base de datos heredada de Passwork;
  • Si la autenticación de MongoDB no está configurada, deje los parámetros MONGODB_USERNAME, MONGODB_PASSWORD, MIGRATION_DATABASE_USERNAME y MIGRATION_DATABASE_PASSWORD vacíos.
  • MONGODB_USERNAME — Valor del parámetro username en config.ini
  • MONGODB_PASSWORD — Valor del parámetro password en config.ini
  • MIGRATION_DATABASE_URL — Valor del parámetro connectionString en config.ini
  • MIGRATION_DATABASE_DB — Valor del parámetro dbname en config.ini
  • MIGRATION_DATABASE_USERNAME — Valor del parámetro username en config.ini
  • MIGRATION_DATABASE_PASSWORD — Valor del parámetro password en config.ini
info

Si el parámetro algorithm está especificado en config.ini, realice este paso; si no, omítalo.

  • ENCRYPTION_CIPHER — Valor del parámetro algorithm en config.ini
info

Si el parámetro disableClientSide está especificado en config.ini, realice este paso; si no, omítalo.

  • IS_CLIENT_SIDE_ENCRYPTION_ENABLED=1

Ejemplo de un archivo de configuración config.env completado

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=

Creación y llenado del archivo encryption_key

aviso

Se utilizan bloques de código intercambiables para separar los comandos de los sistemas operativos Linux y Windows Server.

Cree el archivo encryption_key:

touch /var/www/init/encryption_key

En el archivo creado, especifique el valor de secret de config.ini:

base64:fin2GvYi7V2X4bxg3bfrmx1dB/SEqXIBWOOysqCkJbY=

Migración de la base de datos de Passwork

Descripción

La migración está destinada a transferir todos los datos de la base de datos heredada de Passwork a la nueva. Durante la migración, se realizarán las siguientes acciones:

  • Creación de nuevos objetos según la estructura de datos actual;
  • Transferencia de datos existentes preservando su integridad;
  • Actualización y optimización de todos los objetos de la base de datos de Passwork.

La migración garantiza que todos los datos se transferirán exitosamente sin pérdida, y Passwork versión 7 podrá operar completamente con la base de datos actualizada.

Ejecución de la migración

Windows Server

Navegue a la ubicación raíz de Passwork:

cd "C:\inetpub\wwwroot\passwork"

Ejecute el comando de migración:

php -d "memory_limit=-1" .\bin\console database:v6:migration
Linux
info

Dependiendo del sistema operativo, la migración debe ejecutarse como el usuario bajo el cual se ejecuta el servidor web Apache.

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

Ejemplo de ejecución y finalización exitosa de la migración:

Ejemplo de inicio y ejecución de la migración de objetos de la base de datos

Después de la finalización, estos parámetros en config.env ya no son necesarios y se pueden eliminar:

MIGRATION_DATABASE_URL=
MIGRATION_DATABASE_DB=
MIGRATION_DATABASE_USERNAME=
MIGRATION_DATABASE_PASSWORD=

La etapa final para el cifrado predeterminado se ha completado y Passwork se puede utilizar para trabajar.