Migrations-Leitfaden

Hint

Diese Seite enthält Migrationsanweisungen für die Umstellung auf Mapbender 4. Migrationsanweisungen zu Versionen < 4.0.0 finden Sie in der englischen Version dieser Seite. Allgemeine Tipps zur Aktualisierung finden Sie stattdessen auf der Seite Aktualisierung von Mapbender auf eine neuere Version.

Tip

Für ausführliche Informationen des Mapbender-Entwicklungsteams siehe auch den Upgrading Guide auf GitHub.

Umstellung auf Mapbender 4.0.0

  • Schauen Sie sich den Upgrading Guide auf GitHub sorgfältig an, bevor Sie das Update durchführen.

  • Sie werden feststellen, dass sich die Symfony Verzeichnisstruktur stark verändert hat.

  • Für Mapbender 4 wurden alle .yml-Dateierweiterungen in .yaml umgewandelt.

  • Die config.yml ist entfallen.

  • Öffentliche Dateien wurden von web/ nach public/ verschoben.

  • Anstelle von mehreren Parametern in der Datei parameters.yml wird die Datenbankdefinition durch eine Umgebungsvariable MAPBENDER_DATABASE_URL ersetzt. Konfigurieren Sie sie, indem Sie diese in Ihrer .env.local-Datei hinzufügen. Wenn Sie mehrere Verbindungen haben, verwenden Sie eine Umgebungsvariable pro Verbindung und konfigurieren diese in der Datei config/packages/doctrine.yaml.

  • Der Apache Virtual Host / ALIAS muss geändert werden. Verweisen Sie auf public (statt auf web). Rufen Sie index.php (anstelle von app.php) auf. Siehe Installationsanleitung.

  • Die Umgebung kann nun über die Umgebungsvariable APP_ENV gesetzt werden (siehe .env.local). index_dev.php (vorher app_dev.php) ist weiterhin als Alternative für den Zugriff auf die Entwicklungsumgebung verfügbar.

  • Datenbankberechtigungen können mit bin/console mapbender:security:migrate-from-acl migriert werden. Führen Sie dies aus, bevor Sie den Befehl schema:update ausführen, da sonst Ihre alten ACL-Tabellen nicht mehr vorhanden sind.

Upgrade der Datenbank

Warning

Führen Sie die folgenden Befehle exakt in der angegebenen Reihenfolge aus, um ein Upgrade durchzuführen (nachdem Sie die Verzeichnisstruktur von Symfony auf den neuesten Stand gebracht haben). Erstellen Sie zuerst ein Backup Ihrer Datenbank!

  1. Dies ersetzt den aus doctrine entfernten json_array-Typ durch json. Wenn Sie ein anderes DBMS als SQlite, PostgreSQL und MySQL verwenden, müssen Sie dies manuell tun.

bin/console mapbender:database:upgrade
  1. Migriert Sicherheitsdefinitionen aus dem ACL-System in das neue Rechtesystem:

bin/console mapbender:security:migrate-from-acl
  1. Aktualisiert den Rest der Datenbank. Dies muss als letzter Schritt ausgeführt werden, da es die alten ACL-Tabellen löscht:

bin/console doctrine:schema:update --complete --force