Zum Inhalt

Testsystem aus Produktivsystem synchronisieren

Diese Anleitung beschreibt, wie das Testsystem (vorschau.sachpool.de) auf den aktuellen Stand des Produktivsystems (sachpool.de) gebracht wird.

Destruktive Operation

Der komplette Inhalt des Testsystems (Dateien und Datenbank) wird überschrieben. Vor dem Abgleich immer ein Backup des Testsystems anlegen.

Richtung umkehren

Für den seltenen Fall eines Rückwegs (Test → Live) gelten dieselben Schritte mit vertauschten Quellen/Zielen. Änderungen aus dem Test fließen in der Regel aber über Import/Export von Änderungen ins Livesystem, nicht per Komplettkopie.

Systeminformationen

Rolle URL Verzeichnis Datenbank
Produktiv sachpool.de /www/htdocs/w00abc84/sachpool.de/ WebEdition Live-DB
Test vorschau.sachpool.de /www/htdocs/w00abc84/vorschau.sachpool.de/ WebEdition Test-DB

Zugangsdaten

Konkrete DB-Namen, DB-User und Passwörter liegen in Vaultwarden. Historisch existiert zusätzlich eine alte fastpublish-Datenbank, die für diesen Abgleich nicht mehr relevant ist.

Zugang zum Server per SSH. mysql und mysqldump stehen zur Verfügung.

Ablauf im Überblick

  1. Backup des Testsystems (DB + Dateien)
  2. Datenbank-Abgleich (Test-DB leeren, Live-Dump einspielen)
  3. Dateien kopieren (Live-Verzeichnis → Test-Verzeichnis)
  4. Konfiguration im Testsystem anpassen
  5. Testsystem optisch kennzeichnen
  6. Rebuild in WebEdition

1. Backup

Datenbanken sichern

cd /www/htdocs/w00abc84/database-migration/backup

# Livesystem
mysqldump -u <live-db-user> -p --max_allowed_packet=1073741824 \
  <live-db-name> > live-komplett.sql

# Testsystem (vor dem Überschreiben!)
mysqldump -u <test-db-user> -p --max_allowed_packet=1073741824 \
  <test-db-name> > test-komplett-vorher.sql

Dateien sichern

cd /www/htdocs/w00abc84/
tar -czf vorschau.sachpool.de-vorher.tar.gz vorschau.sachpool.de/

2. Datenbank synchronisieren

Alle Tabellen im Testsystem löschen

mysqldump -u <test-db-user> -p --add-drop-table --no-data <test-db-name> \
  | grep ^DROP \
  | mysql -u <test-db-user> -p <test-db-name>

Live-Dump einspielen

mysql -u <test-db-user> -p <test-db-name> < live-komplett.sql

3. Dateien kopieren

cd /www/htdocs/w00abc84/

# Bestehendes Testverzeichnis sichern oder entfernen
mv vorschau.sachpool.de vorschau.sachpool.de.alt

# Live-Stand kopieren (Rechte + Zeitstempel erhalten)
cp -pR sachpool.de/ vorschau.sachpool.de/

4. Testsystem-Konfiguration anpassen

Datenbankverbindung umstellen

Datei: vorschau.sachpool.de/webEdition/custom/conf/we_conf.inc.php

// Name der Datenbank
define('DB_DATABASE', '<test-db-name>');

// Datenbank-Benutzer (Base64-kodiert)
define('DB_USER', base64_decode('<test-db-user-base64>'));

// Datenbank-Passwort (Base64-kodiert)
define('DB_PASSWORD', base64_decode('<test-db-password-base64>'));

Base64 kodieren

Im Linux-Terminal: echo -n "wert" | base64. Alternativ ein lokales Tool. Eigene Werte nie auf fremde Online-Tools kopieren.

www.-Weiterleitung deaktivieren

In der .htaccess im Wurzelverzeichnis die beiden Weiterleitungszeilen (i.d.R. Zeile 5 und 6) mit # auskommentieren, damit vorschau.sachpool.de nicht auf www.sachpool.de umgeleitet wird.

System-Kennzeichnung als Datei

Im Wurzelverzeichnis die Marker-Datei anpassen:

  • Produktiv: Datei LIVESYSTEM
  • Test: Datei TESTSYSTEM

Nach der Kopie liegt dort LIVESYSTEM — in TESTSYSTEM umbenennen.


5. Optische Markierung

Damit das Testsystem im Browser klar erkennbar ist.

Roter Rahmen im Frontend

In master.tmpl unter <body id="page-top"> einfügen:

<div id="dev-border"
     style="position: fixed; border: 2px solid red;
            height: 100%; width: 100%;
            z-index: 1000000; pointer-events: none;">
</div>

Roter Rahmen im WebEdition-Login

Datei: webEdition/we/css/loginScreen.css

Eine Zeile unter dem bestehenden #loginScreen-Block hinzufügen:

#loginScreen { border: 2px solid red; }

6. Rebuild in WebEdition

Im WebEdition-Backend:

Einstellungen → Rebuild

Damit werden alle dynamischen URLs (Objekte, Seiten) für das Testsystem neu geschrieben. Ohne Rebuild zeigen Links noch auf sachpool.de.


Checkliste

  • [ ] Backup Test-DB erstellt
  • [ ] Backup Test-Dateien erstellt
  • [ ] Live-DB gedumpt
  • [ ] Test-DB geleert
  • [ ] Live-Dump in Test-DB eingespielt
  • [ ] Live-Dateien nach vorschau.sachpool.de/ kopiert
  • [ ] we_conf.inc.php auf Test-DB umgestellt
  • [ ] .htaccess: www.-Redirect deaktiviert
  • [ ] Marker-Datei LIVESYSTEMTESTSYSTEM umbenannt
  • [ ] Roter Rahmen in master.tmpl gesetzt
  • [ ] Roter Rahmen im loginScreen.css gesetzt
  • [ ] Rebuild in WebEdition ausgeführt
  • [ ] Login im Testsystem verifiziert