Migración de objetos de la base de datos de Passwork
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
./ — 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
- curl
wget https://repos.passwork.pro/repository/linux/scripts/config_convert.sh
curl -O https://repos.passwork.pro/repository/linux/scripts/config_convert.sh
Otorgue permisos de ejecución al script:
- shell
chmod +x config_convert.sh
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ónconfig.inise 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 directorioinitque 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.inise 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
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:
- DEB
- RPM
chown www-data:www-data /var/www/init/*
chown apache:apache /var/www/init/*
Windows Server
Descargue el script para la generación automática de archivos:
- PowerShell
(New-Object System.Net.WebClient).DownloadFile("https://repos.passwork.pro/repository/powershell/config_convert.ps1", "$PWD\config_convert.ps1")
Antes de ejecutar el script, asegúrese de lo siguiente.
- Si Passwork está instalado en la ubicación estándar
C:\inetpub\wwwroot\passworky el archivo de configuraciónconfig.inise encuentra en el directorio esperadoC:\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, enC:\inetpub\wwwroot\, debe usar el argumento-outputDirectory, especificando la ruta al directorioinitque contiene los archivos de configuración. Ejemplo:
.\config_convert.ps1 -outputDirectory "C:\inetpub\wwwroot\init"
- Si el archivo de configuración de Passwork
config.inise encuentra en una ubicación no estándar diferente deC:\inetpub\wwwroot\config.ini. Por ejemplo, enC:\inetpub\config.ini, debe usar el argumento-inputFile, especificando la ubicación del archivo. Ejemplo:
.\config_convert.ps1 -inputFile "C:\inetpub\config.ini"
El script convierte el archivo config.ini en config.env y encryption_key, verificando su corrección.
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
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:
- Linux
- Windows
touch /var/www/init/config.env
New-Item -ItemType File -Path "C:\inetpub\wwwroot\passwork\init\config.env" -Force
En el archivo creado, especifique las siguientes líneas:
- config.env
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)
- 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
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
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
- 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=
Creación y llenado del archivo encryption_key
Se utilizan bloques de código intercambiables para separar los comandos de los sistemas operativos Linux y Windows Server.
Cree el archivo encryption_key:
- Linux
- Windows
touch /var/www/init/encryption_key
New-Item -ItemType File -Path "C:\inetpub\wwwroot\passwork\init\encryption_key" -Force
En el archivo creado, especifique el valor de secret de config.ini:
- encryption_key
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:
- PowerShell
cd "C:\inetpub\wwwroot\passwork"
Ejecute el comando de migración:
- PowerShell
php -d "memory_limit=-1" .\bin\console database:v6:migration
Linux
Dependiendo del sistema operativo, la migración debe ejecutarse como el usuario bajo el cual se ejecuta el servidor web 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'
Ejemplo de ejecución y finalización exitosa de la migración:

Después de la finalización, estos parámetros en config.env ya no son necesarios y se pueden eliminar:
- shell
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.
Revise las acciones posteriores a la migración