Migration der Passwork-Datenbankobjekte
Überspringen Sie diesen Schritt, wenn Sie die Standardinstallation (Docker oder PowerShell-Modul) von Passwork verwenden.
Erstellung der Dateien für Passwork Version 7
Nach dem Upgrade von Passwork auf Version 7 müssen die folgenden Dateien erstellt und ausgefüllt werden:
./init/config.env./init/encryption_key
./ — Stammverzeichnis von Passwork:
- Windows Server — C:\inetpub\wwwroot\passwork
- Linux — /var/www
Während des Passwork-Upgrades auf Version 7 wird eine Kopie der Konfigurationsdatei (config.ini) am folgenden Speicherort erstellt:
- Windows Server —
C:\inetpub\wwwroot\config.ini - Linux —
/var/config.ini
Automatische Erstellung und Befüllung der Passwork-Konfigurationsdateien
Linux
Laden Sie das Skript zur automatischen Dateigenerierung herunter:
- 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
Erteilen Sie dem Skript Ausführungsrechte:
- shell
chmod +x config_convert.sh
Stellen Sie vor der Ausführung des Skripts bitte Folgendes sicher.
- Wenn Passwork im Standardverzeichnis
/var/www/installiert ist und sich die Konfigurationsdateiconfig.iniim erwarteten Verzeichnis/var/config.inibefindet, führen Sie das Skript standardmäßig ohne Argumente aus. Beispiel:
sudo ./config_convert.sh
- Wenn Passwork in einem nicht standardmäßigen Verzeichnis installiert ist (nicht
/var/www/). Zum Beispiel in/var/www/passwork/, müssen Sie das Argument--output(oder-o) verwenden und den Pfad zuminit-Verzeichnis mit den Konfigurationsdateien angeben. Beispiel:
sudo ./config_convert.sh --output /var/www/passwork/init
- Wenn sich die Passwork-Konfigurationsdatei
config.inian einem nicht standardmäßigen Speicherort befindet (nicht/var/config.ini). Zum Beispiel in/opt/config.ini, müssen Sie das Argument--input(oder-i) verwenden und den Dateispeicherort angeben. Beispiel:
sudo ./config_convert.sh --input /opt/config.ini
Das Skript konvertiert die Datei config.ini in config.env und encryption_key und überprüft deren Korrektheit.
Weisen Sie den Webserver-Benutzer als Eigentümer der konvertierten Dateien zu:
- DEB
- RPM
chown www-data:www-data /var/www/init/*
chown apache:apache /var/www/init/*
Windows Server
Laden Sie das Skript zur automatischen Dateigenerierung herunter:
- PowerShell
(New-Object System.Net.WebClient).DownloadFile("https://repos.passwork.pro/repository/powershell/config_convert.ps1", "$PWD\config_convert.ps1")
Stellen Sie vor der Ausführung des Skripts bitte Folgendes sicher.
- Wenn Passwork im Standardverzeichnis
C:\inetpub\wwwroot\passworkinstalliert ist und sich die Konfigurationsdateiconfig.iniim erwarteten VerzeichnisC:\inetpub\wwwroot\config.inibefindet, führen Sie das Skript standardmäßig ohne Argumente aus. Beispiel:
.\config_convert.ps1
- Wenn Passwork in einem nicht standardmäßigen Verzeichnis installiert ist (nicht
C:\inetpub\wwwroot\passwork). Zum Beispiel inC:\inetpub\wwwroot\, müssen Sie das Argument-outputDirectoryverwenden und den Pfad zuminit-Verzeichnis mit den Konfigurationsdateien angeben. Beispiel:
.\config_convert.ps1 -outputDirectory "C:\inetpub\wwwroot\init"
- Wenn sich die Passwork-Konfigurationsdatei
config.inian einem nicht standardmäßigen Speicherort befindet (nichtC:\inetpub\wwwroot\config.ini). Zum Beispiel inC:\inetpub\config.ini, müssen Sie das Argument-inputFileverwenden und den Dateispeicherort angeben. Beispiel:
.\config_convert.ps1 -inputFile "C:\inetpub\config.ini"
Das Skript konvertiert die Datei config.ini in config.env und encryption_key und überprüft deren Korrektheit.
Wenn bei der automatischen Erstellung und Befüllung Fehler auftreten, können Sie die Dateien manuell erstellen und mit Werten befüllen.
Manuelle Erstellung und Befüllung der Passwork-Konfigurationsdateien
Erstellung und Befüllung der Datei config.env
Umschaltbare Codeblöcke werden verwendet, um Befehle für die Betriebssysteme Linux und Windows Server zu trennen.
Erstellen Sie die Passwork-Konfigurationsdatei:
- Linux
- Windows
touch /var/www/init/config.env
New-Item -ItemType File -Path "C:\inetpub\wwwroot\passwork\init\config.env" -Force
Geben Sie in der erstellten Datei die folgenden Zeilen an:
- config.env
APP_URL=
MONGODB_URL=
MONGODB_DB=
MONGODB_USERNAME=
MONGODB_PASSWORD=
MIGRATION_DATABASE_URL=
MIGRATION_DATABASE_DB=
MIGRATION_DATABASE_USERNAME=
MIGRATION_DATABASE_PASSWORD=
Zuordnung und Befüllung der Parameter von config.ini in config.env:
- APP_URL — Wert des Parameters domain in config.ini
- MONGODB_URL — Wert des Parameters connectionString in config.ini
- MONGODB_DB — Geben Sie den neuen Passwork-Datenbanknamen an (pw)
- Die Migration erstellt, überträgt, modifiziert und aktualisiert alle Objekte in der Legacy-Passwork-Datenbank;
- Wenn keine MongoDB-Authentifizierung konfiguriert ist, lassen Sie die Parameter MONGODB_USERNAME, MONGODB_PASSWORD, MIGRATION_DATABASE_USERNAME und MIGRATION_DATABASE_PASSWORD leer.
- MONGODB_USERNAME — Wert des Parameters username in config.ini
- MONGODB_PASSWORD — Wert des Parameters password in config.ini
- MIGRATION_DATABASE_URL — Wert des Parameters connectionString in config.ini
- MIGRATION_DATABASE_DB — Wert des Parameters dbname in config.ini
- MIGRATION_DATABASE_USERNAME — Wert des Parameters username in config.ini
- MIGRATION_DATABASE_PASSWORD — Wert des Parameters password in config.ini
Wenn der Parameter algorithm in config.ini angegeben ist, führen Sie diesen Schritt aus; andernfalls überspringen Sie ihn.
- ENCRYPTION_CIPHER — Wert des Parameters algorithm in config.ini
Wenn der Parameter disableClientSide in config.ini angegeben ist, führen Sie diesen Schritt aus; andernfalls überspringen Sie ihn.
- IS_CLIENT_SIDE_ENCRYPTION_ENABLED=1
Beispiel einer ausgefüllten Konfigurationsdatei 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=
Erstellung und Befüllung der Datei encryption_key
Umschaltbare Codeblöcke werden verwendet, um Befehle für die Betriebssysteme Linux und Windows Server zu trennen.
Erstellen Sie die Datei encryption_key:
- Linux
- Windows
touch /var/www/init/encryption_key
New-Item -ItemType File -Path "C:\inetpub\wwwroot\passwork\init\encryption_key" -Force
Geben Sie in der erstellten Datei den Wert secret aus config.ini an:
- encryption_key
base64:fin2GvYi7V2X4bxg3bfrmx1dB/SEqXIBWOOysqCkJbY=
Migration der Passwork-Datenbank
Beschreibung
Die Migration dient dazu, alle Daten aus der Legacy-Passwork-Datenbank in die neue zu übertragen. Während der Migration werden folgende Schritte durchgeführt:
- Erstellung neuer Objekte gemäß der aktuellen Datenstruktur;
- Übertragung vorhandener Daten unter Wahrung ihrer Integrität;
- Aktualisierung und Optimierung aller Passwork-Datenbankobjekte.
Die Migration garantiert, dass alle Daten erfolgreich und ohne Verlust übertragen werden und Passwork Version 7 vollständig mit der aktualisierten Datenbank arbeiten kann.
Ausführung der Migration
Windows Server
Navigieren Sie zum Stammverzeichnis von Passwork:
- PowerShell
cd "C:\inetpub\wwwroot\passwork"
Führen Sie den Migrationsbefehl aus:
- PowerShell
php -d "memory_limit=-1" .\bin\console database:v6:migration
Linux
Abhängig vom Betriebssystem muss die Migration als der Benutzer ausgeführt werden, unter dem der Apache-Webserver läuft.
- 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'
Beispiel für die Ausführung und den erfolgreichen Abschluss der Migration:

Nach Abschluss werden diese Parameter in config.env nicht mehr benötigt und können entfernt werden:
- shell
MIGRATION_DATABASE_URL=
MIGRATION_DATABASE_DB=
MIGRATION_DATABASE_USERNAME=
MIGRATION_DATABASE_PASSWORD=
Die letzte Phase für die Standardverschlüsselung ist abgeschlossen und Passwork kann verwendet werden.
Bitte lesen Sie die Aktionen nach der Migration