Hallo Forum,
meine NC-Migration von einem zum anderen Hoster war nun scheinbar fast abgeschlossen …
Am Ende sind’s die Datenbanken. Ich habe eine MariaDB vom Quellserver exportiert und auf dem Zielserver nur eine MySQL zur Verfügung. Beim Import des Dump erscheint folgende Fehlermeldung:
CREATE TABLE `oc_ex_ui_files_actions` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`appid` varchar(32) NOT NULL,
`name` varchar(64) NOT NULL,
`display_name` varchar(64) NOT NULL,
`mime` longtext NOT NULL DEFAULT 'file',
`permissions` varchar(255) NOT NULL,
`order` bigint(20) NOT NULL DEFAULT 0,
`icon` varchar(255) DEFAULT '',
`action_handler` varchar(64) NOT NULL,
`version` varchar(64) NOT NULL DEFAULT '1.0',
PRIMARY KEY (`id`),
UNIQUE KEY `ex_ui_files_actions__idx` (`appid`,`name`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin
--------------
ERROR 1101 (42000) at line 2414: BLOB, TEXT, GEOMETRY or JSON column 'mime' can't have a default value
bash-5.2$
Hat jemand Rat?
Beste Grüße,
hienetz
Das hier?
occ db:convert-type
Könnte mir vorstellen, dass das tut was es soll. NC kann ja sowohl mit MariaDB als auch mit MySQL umgehen. Und müsste daher am besten wissen, was für eine Konvertierung zu tun ist.
Nextcloud scheint intern nicht zwischen MariaDB und MySQL zu unterscheiden
Mit occ db:convert-type habe ich das jedenfalls nicht hinbekommen können.
Daher eine grundsätzliche Frage:
Was passiert, wenn ich die DB nicht von dem alten auf den neuen Server migriere sondern nur das Datenverzeichnis? Ich nutze die NC nur für 2 private Accounts, auf die ich Zugriff habe und das was ich über das Datenverzeichnis hinaus nutze sind Kalender und Kontakte für die beiden Accounts. Die Daten dafür dürften sich ja aus der alten NC ex- und in die neue importieren lassen.
Beste Grüße,
heinetz
So, nun nochmal alles in Ruhe gemacht … mit Erfolg.
Für die Nachwelt:
- Problem
Der Datenbank-Dump meiner MariaDB führte beim Import in eine MySQL zu folgender Fehlerausgabe:
ERROR 1101 (42000) at line 2414: BLOB, TEXT, GEOMETRY or JSON column 'mime' can't have a default value
- Lösung
Ich habe den Datenbank-Dump mit einem Code-Editor geöffnet und die Zeile 2414 geändert:
von :mime
longtext NOT NULL DEFAULT ‘file’,
nach : von :mime
longtext NOT NULL,
Ich habe danach erneut versucht, den Dump in die MySQL-DB einzuspielen und eine ähnlichen Fehlermeldung zu einer weiteren Zeile erhalten, auch da den Parameter DEFAULT im SQL-Statement entfernt. Nach der 3. Anpassung ließ sich der DB-Dump problemlos in die MySQL-DB einspielen.
Beste Grüße,
Martin
3 Likes
Gratulation dass du es doch noch geschafft hast.
Zu grundsätzlichen Frage: Importierst du nur die Datenverzeichnisse geht dir natürlich die Versionshistorie verloren. Ob das ein relevantes Problem darstellt muss man selbst entscheiden und ist sicherlich hochgradig abhängig von den in der NC gespeicherten Daten.
Für mich als Linuxer wäre dann ein WebDav-Mount die einfachste und beste Lösung um Datenverzeichnisse der beiden Accounts von einem auf den anderen Server zu übertragen.
Achtung: in dem Fall niemals die Nextcloud-Datenverzeichnisse selbst übertragen, sondern die Nextcloud per WebDav mounten und dann mit den normalen Userechten die Daten aus dem WebDav-Mount in einen WebDav-Mount auf den anderen Server übertragen. Nur so werden die erforderlichen Einträge in der Datenbank des neuen Servers korrekt angelegt.
Kalender und Kontakte für die beiden Accounts würden so aber nicht übertragen werden. Aber dafür gibt es von cooper-bin eine tolle Lösung:
Nextcloud Backup - Kontakte und Kalender sichern
Naja, nun hatte ich es ja auf dem mit dem vorgesehenen Migrations-Pfad hinbekommen und bin damit auch ganz ok.
Nicht nur ganz ok sondern besser !!! Ich wollte nur der Vollständigkeithalber aufzeigen wie der zweitbeste Weg ausgesehen hätte, falls es mit dem besseren, von dir gewählten, nicht geklappt hätte.
Ich bin mir nicht sicher, ob das in meinem Fall wirklich besser ist. Ich Mein Eindruck ist, dass jede einmal installierte App Spuren hinterlässt nachdem man sie deinstalliert hat.
Ich hatte zwei NC-Instanzen nebeneinander beim selben Provider Netcup in meinem Webhostingpaket angelegt. Eine frische OutOfThe-Box Instanz mit Beispieldaten und eine, in die ich meine “alte” Instanz nunerfolgreich migriert habe. In beiden habe ich nun die App Memories installiert und die Settings sind in beiden die selben. Der einzige Unterschied ist der, dass ich in der migrierten Version irgendwann schonmal Memories installiert und wieder deinstallliert hatte. In der migrierten Version werden nun keine Vorschaubilder angezeigt.