Aktuelle Version |
Dein Text |
Zeile 293: |
Zeile 293: |
|
| |
|
| === Migration === | | === Migration === |
|
| |
| In diesem Guide ist bekommt die neue Instanz die VMID 100 (Container 100) und die alte Instanz die VMID 200 (Container 200).
| |
|
| |
|
| Zuerst soll in beiden Instanzen nginx gestoppt werden, damit die Daten nicht durch das Nutzen der Webseite verändert werden kann. | | Zuerst soll in beiden Instanzen nginx gestoppt werden, damit die Daten nicht durch das Nutzen der Webseite verändert werden kann. |
Zeile 300: |
Zeile 298: |
| <code>systemctl stop nginx</code> | | <code>systemctl stop nginx</code> |
|
| |
|
| Zusätzlich soll in der neuen Instanz pretix gestoppt werden[https://docs.pretix.eu/en/latest/admin/mysql2postgres.html#stop-pretix ''Migration von MariaDB zu PostgreSQL''] Dokumentation von Pretix. Abgerufen am 30. Januar 2024.</ref>.
| | Als erstes wird auf der alten Instanz ein Datenbankdump erstellt. Dazu erst Container betreten und nachfolgenden Kommando durchführen. |
| | |
| <code>systemctl stop pretix-web pretix-worker</code>
| |
| | |
| Auf der alten Instanz muss ein Datenbankdump erstellt. Dazu erst den Container betreten und nachfolgenden Kommando durchführen.
| |
|
| |
|
| <code>sudo -u postgres pg_dump pretix > pretix_dump290124.sql</code> | | <code>sudo -u postgres pg_dump pretix > pretix_dump290124.sql</code> |
Zeile 312: |
Zeile 306: |
| <code>pct mount <VMID></code> | | <code>pct mount <VMID></code> |
|
| |
|
| Als Rückgabe sollte etwas wie <code>/var/lib/lxc/<VMID>/rootfs/</code> ausgegeben werden. Damit können wir nun das <code>/var/pretix/data/</code> Verzeichnis im Container 100 löschen (es wird ersetzt mit den Daten aus der alten Instanz).
| |
|
| |
| <code>cd /var/lib/lxc/100/rootfs/var/pretix/data/</code>
| |
| <code>rm -r ./*</code>
| |
|
| |
| Dannach kopieren wir die Daten aus dem Verzeichnis von Container 200 in Container 100. Es wird <code>rsync -a</code> genutzt, dass kopiert die Verzeichnisse, Dateien und behält die Zugriffsrechte und -zeiten.
| |
|
| |
| <code>rsync -a /var/lib/lxc/200/rootfs/var/pretix/data/ /var/lib/lxc/100/rootfs/var/pretix/data/</code>
| |
|
| |
| Leider wurde damit nicht die <code>.secret</code> Datei als auch der Datenbankdump kopiert. Das wird jetzt nochmals seperat durchgeführt.
| |
|
| |
| <code>cp -p /var/lib/lxc/200/rootfs/var/pretix/data/.secret /var/lib/lxc/100/rootfs/var/pretix/data/.secret</code>
| |
|
| |
| <code>cp -p /var/lib/lxc/200/rootfs/var/lib/postgresql/pretix_dump_290124.sql /var/lib/lxc/100/rootfs/var/lib/postgresql/pretix_dump_290124.sql</code>
| |
|
| |
| Damit können jetzt beide Dateisystem getrennt werden, weil alle wichtigen Daten nun an richtiger Stelle in der neuen Instanz liegen.
| |
|
| |
| <code>pct unmount <VMID></code>
| |
|
| |
| Im Grunde muss nurnoch die Datenbank in der neuen Instanz wiederhergestellt werden. Dazu wechsle in die Shell der neuen Instanz.
| |
|
| |
| Als nächstes wird die aktuelle Datenbank von pretix gelöscht und neu erstellt, damit das Datenbankschema weg ist. Das Schema wird neu aus dem DBDump erstellt.
| |
|
| |
| <pre>
| |
| sudo -u postgres dropdb pretix
| |
|
| |
| sudo -u postgres createdb -O pretix pretix
| |
|
| |
| systemctl restart postgresql
| |
| </pre>
| |
|
| |
| Die Datenbank wird dann wie folgt wiederhergestellt:
| |
|
| |
| <code>sudo -u postgres psql -d pretix -f /var/lib/postgresql/pretix_dump_290124.sql</code>
| |
|
| |
| Dann wider alle Services starten.
| |
|
| |
| <code>systemctl start pretix-web pretix-worker nginx</code>
| |
|
| |
|
| Damit ist nun die Webseite wieder erreichbar und kann wie gewohnt genutzt werden und alle relevanten Daten stehen weiterhin zur verfügung.
| |
|
| |
|
| = Einzelnachweise = | | = Einzelnachweise = |
| <references /> | | <references /> |