Zum Hauptinhalt springen

Migration der Passwork-Datenbankobjekte

gefahr

Ü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
gefahr

./ — 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 https://repos.passwork.pro/repository/linux/scripts/config_convert.sh

Erteilen Sie dem Skript Ausführungsrechte:

chmod +x config_convert.sh
gefahr

Stellen Sie vor der Ausführung des Skripts bitte Folgendes sicher.

  • Wenn Passwork im Standardverzeichnis /var/www/ installiert ist und sich die Konfigurationsdatei config.ini im erwarteten Verzeichnis /var/config.ini befindet, 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 zum init-Verzeichnis mit den Konfigurationsdateien angeben. Beispiel:
sudo ./config_convert.sh --output /var/www/passwork/init
  • Wenn sich die Passwork-Konfigurationsdatei config.ini an 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
info

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:

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

Laden Sie das Skript zur automatischen Dateigenerierung herunter:

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

Stellen Sie vor der Ausführung des Skripts bitte Folgendes sicher.

  • Wenn Passwork im Standardverzeichnis C:\inetpub\wwwroot\passwork installiert ist und sich die Konfigurationsdatei config.ini im erwarteten Verzeichnis C:\inetpub\wwwroot\config.ini befindet, 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 in C:\inetpub\wwwroot\, müssen Sie das Argument -outputDirectory verwenden und den Pfad zum init-Verzeichnis mit den Konfigurationsdateien angeben. Beispiel:
.\config_convert.ps1 -outputDirectory "C:\inetpub\wwwroot\init"
  • Wenn sich die Passwork-Konfigurationsdatei config.ini an einem nicht standardmäßigen Speicherort befindet (nicht C:\inetpub\wwwroot\config.ini). Zum Beispiel in C:\inetpub\config.ini, müssen Sie das Argument -inputFile verwenden und den Dateispeicherort angeben. Beispiel:
.\config_convert.ps1 -inputFile "C:\inetpub\config.ini"
info

Das Skript konvertiert die Datei config.ini in config.env und encryption_key und überprüft deren Korrektheit.

info

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

warnung

Umschaltbare Codeblöcke werden verwendet, um Befehle für die Betriebssysteme Linux und Windows Server zu trennen.

Erstellen Sie die Passwork-Konfigurationsdatei:

touch /var/www/init/config.env

Geben Sie in der erstellten Datei die folgenden Zeilen an:

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)
gefahr
  • 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
info

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
info

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

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

warnung

Umschaltbare Codeblöcke werden verwendet, um Befehle für die Betriebssysteme Linux und Windows Server zu trennen.

Erstellen Sie die Datei encryption_key:

touch /var/www/init/encryption_key

Geben Sie in der erstellten Datei den Wert secret aus config.ini an:

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:

cd "C:\inetpub\wwwroot\passwork"

Führen Sie den Migrationsbefehl aus:

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

Abhängig vom Betriebssystem muss die Migration als der Benutzer ausgeführt werden, unter dem der Apache-Webserver läuft.

sudo -u www-data 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:

Beispiel für den Start und die Ausführung der Migration von Datenbankobjekten

Nach Abschluss werden diese Parameter in config.env nicht mehr benötigt und können entfernt werden:

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.

gefahr

Bitte lesen Sie die Aktionen nach der Migration