!empty($_POST["force"])]); $messages[] = "Update ausgerollt: " . $result["from_version"] . " → " . $result["to_version"]; $messages[] = $result["copied"] . " Dateien kopiert, " . $result["backed_up"] . " gesichert."; $messages[] = "Sicherungsverzeichnis: " . $result["backup_dir"]; $hook = $result["hook"]; if (is_array($hook)) { $applied = $hook["migrations"]["applied"] ?? []; if ($applied !== []) { $messages[] = "Migrationen ausgeführt: " . implode(", ", $applied); } if (empty($hook["success"])) { // The files are deployed; only the post-update step failed. if (!empty($hook["failed_migration"])) { $errors[] = "Die Dateien wurden ausgerollt, aber die Migration \"" . (string) $hook["failed_migration"] . "\" ist fehlgeschlagen: " . (string) ($hook["error"] ?? ""); $errors[] = "Verbleibende Migrationen wurden nicht ausgeführt. " . "Nach Behebung der Ursache unten \"Migrationen ausführen\" verwenden."; } else { $errors[] = "Die Dateien wurden ausgerollt, aber der Post-Update-Hook ist " . "fehlgeschlagen: " . (string) ($hook["error"] ?? ""); } } } manageHeartbeatSendQuietly(); } elseif ($action === "migrate") { $report = manageUpdateRunMigrations(); if ($report["applied"] !== []) { $messages[] = "Migrationen ausgeführt: " . implode(", ", $report["applied"]); } if (!$report["success"]) { $errors[] = "Migration \"" . (string) $report["failed"] . "\" ist fehlgeschlagen: " . (string) $report["error"]; } elseif ($report["applied"] === []) { $messages[] = "Keine offenen Migrationen."; } } elseif ($action === "heartbeat") { $result = manageHeartbeatSend(); $messages[] = "Heartbeat gesendet. Aktuelles Release: " . ($result["latest"] !== "" ? $result["latest"] : "keines") . "."; } elseif ($action === "download") { $path = manageBackupPath((string) ($_POST["filename"] ?? "")); $size = filesize($path); $handle = fopen($path, "rb"); if ($size === false || $handle === false) { throw new RuntimeException("Backup konnte nicht geöffnet werden."); } header("Content-Type: application/zip"); header("Content-Disposition: attachment; filename=\"" . addcslashes(basename($path), "\"\\") . "\""); header("Content-Length: " . (string) $size); header("Cache-Control: private, no-store"); header("X-Content-Type-Options: nosniff"); fpassthru($handle); fclose($handle); exit; } } catch (Throwable $exception) { $errors[] = $exception->getMessage(); } } $status = manageClientStatus(); $capabilities = manageRemoteCapabilities(); ?> Update & Backup

Update & Backup

← Zurück zu den Einstellungen

Der Manage-Client ist nicht konfiguriert. In manage-client/config.php müssen MANAGE_SERVER_URL, MANAGE_INSTANCE und MANAGE_TOKEN gesetzt sein.

Installierte Version

Aktuelles Release

Lokale Backups

Letztes:

Offene Migrationen

Version steht bereit. Vor dem Ausrollen sollte ein aktuelles Backup vorliegen.

Aktionen

Offene Migrationen

Lokale Backups

Es wurde noch kein Backup erstellt.

Datei Erstellt Auslöser Dateien Größe Upload
"; } } ?>
">
$capability) { if ($capability["configured"] && !$capability["available"]) { $capabilityWarnings[] = $type; } } ?>

Konfigurierte Backup-Ziele ohne Systemunterstützung: . Diese Uploads werden fehlschlagen.