Ich betreibe meine private Nextcloud-Instanz mit Docker (Docker-Compose). Ich habe versucht, auf eine neuere Nextcloud-Version zu aktualisieren, habe aber nicht bemerkt, dass ich keine Hauptversion (von 21 auf 23) überspringen sollte. Jetzt kann ich es überhaupt nicht starten:
- Wenn ich versuche, den Container mit der Version 23 zu starten und das Upgrade auszulösen, schlägt dies fehl, da kein Upgrade von 21 möglich ist:
leifb@***:~/nextcloud$ sudo docker-compose exec --user www-data app php occ upgrade Nextcloud or one of the apps require upgrade - only a limited number of commands are available [...] Exception: Updates between multiple major versions and downgrades are unsupported. Update failed [...]
- Wenn ich versuche, den Container mit einer Version <23 zu starten, schlägt dies fehl, weil er denkt, die Daten seien von Version 23:
app_1 | Can't start Nextcloud because the version of the data (23.0.3.2) is higher than the docker image version (22.2.6.2) and downgrading is not supported. Are you sure you have pulled the newest image version?
Gibt es eine Möglichkeit, ein Upgrade zu erzwingen oder mit Version 22 zu beginnen?
Hier ist meine Docker-Compose-Datei:
version: '2'
volumes:
nextcloud:
db:
services:
db:
image: mariadb
restart: always
command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW
volumes:
- db:/var/lib/mysql
environment:
- MYSQL_ROOT_PASSWORD=***
- MYSQL_PASSWORD=***
- MYSQL_DATABASE=nextcloud
- MYSQL_USER=nextcloud
app:
image: nextcloud:22
restart: always
ports:
- 9009:80
links:
- db
volumes:
- nextcloud:/var/www/html
environment:
- MYSQL_PASSWORD=***
- MYSQL_DATABASE=nextcloud
- MYSQL_USER=nextcloud
- MYSQL_HOST=db
- OVERWRITEHOST=***
- OVERWRITEPROTOCOL=https
Danke schön!
Antwort1
Ich konnte das Problem beheben, indem ich die Version in der version.php
Datei des nextcloud
Datenträgers manuell geändert habe.
Dies kann zu irreparablen Problemen führen. Sichern Sie Ihre Daten, wenn Sie dasselbe tun möchten!
Der vollständige Pfad für diese Datei war:/var/lib/docker/volumes/nextcloud_nextcloud/_data/version.php
Ich hatte noch ein altes Nextcloud-Volume herumliegen, das ich bei der ersten Einrichtung von Nextcloud erstellt hatte. Ich habe einfach das version.php
von diesem Volume verwendet, da ich ziemlich sicher war, dass es die richtige Version hatte.
Folgendes hat sich geändert:
"falsch" version.php
:
<?php
$OC_Version = array(23,0,3,2);
$OC_VersionString = '23.0.3';
$OC_Edition = '';
$OC_Channel = 'stable';
$OC_VersionCanBeUpgradedFrom = array (
'nextcloud' =>
array (
'22.2' => true,
'23.0' => true,
),
'owncloud' =>
array (
'10.5' => true,
),
);
$OC_Build = '2022-03-21T13:05:48+00:00 5f6449283b5eb3cd0c96f475ff6f68a6c73a8140';
$vendor = 'nextcloud';
"richtig" version.php
:
<?php
$OC_Version = array(21,0,1,1);
$OC_VersionString = '21.0.1';
$OC_Edition = '';
$OC_Channel = 'stable';
$OC_VersionCanBeUpgradedFrom = array (
'nextcloud' =>
array (
'20.0' => true,
'21.0' => true,
),
'owncloud' =>
array (
'10.5' => true,
),
);
$OC_Build = '2021-04-08T13:32:52+00:00 bd555dbe8568b2509bd7d82fabbe38d76c86afbe'
;
$vendor = 'nextcloud';
Nach dieser Änderung konnte ich Nextcloud zunächst in der Version 21 starten, um zu prüfen, ob noch alles da war. Anschließend konnte ich problemlos schrittweise auf 22 und 23 aktualisieren.
PS:
docker-compose exec --user www-data app php occ
Ermöglicht Ihnen, den Wartungsmodus manuell zu aktualisieren und zu deaktivieren.