Eintrag 'sqlite3' fälschlicherweise als 'dbtype' in config.php


#1

Hallo,
aufgrund eines heute nicht mehr nachvollziehbaren Grundes ist bei der initialen Einrichtung meiner Cloud (damals unter OC9 vermutlich) der dbtype als sqlite3 angeben worden, obwohl eine MySQL-Datenbank eingerichtet wurde. Momentan läuft meine OC10.0.7 Installation einwandfrei.
Allerdings erhalte ich in als Admin der OC unter Einstellungen/Allgemein den folgenden Hinweis in rot:

SQLite wird als Datenbank verwendet. Bei größeren Installationen wird empfohlen, auf ein anderes Datenbank-Backend zu wechseln.
Insbesondere bei der Nutzung des Desktop Clients zur Dateisynchronisierung wird vom Einsatz von SQLite abgeraten.
Um zu einer anderen Datenbank zu migrieren, benutze bitte die Kommandozeile: ‘occ db:convert-type’, oder in die Dokumentation schauen.

Grund dieses Hinweises ist vermutlich lediglich der Eintrag in der config.php. Ihn einfach auf ‘mysql’ zu ändern, ergibt beim anschließenden Aufruf per Browser die sinngemäße Fehlermeldung, daß einige Apps nicht kompatibel sind und ein Upgrade auf 10.0.7 nicht möglich ist (??? ich verwende doch 10.0.7!!).
Eine Migration mittels occ scheitert (natürlich) auch, da die MySQL-Datenbank ja bereits existiert.

Was muß ich machen, um den og. Hinweis weg zu bekommen?

VG kormorix


#2

Hallo,
ich habe die Installation nochmal kritisch geprüft:
Letztendlich klappt die Migration von sqlite nach mysql nicht. Die Anweisung:

sudo -u apache php occ db:convert-type --password 'mysqlpw' --all-apps 'mysql' 'mysqluser' '127.0.0.1' 'alreadycreated_mysqldb'

ergibt folgende Fehlermeldungen:
[Doctrine\DBAL\Exception\TableExistsException]
An exception occurred while executing 'CREATE TABLE oc_appconfig (appid VARCHAR(32
) DEFAULT '' NOT NULL, configkey VARCHAR(64) DEFAULT '' NOT NULL, configvalue LONG
TEXT DEFAULT NULL, INDEX appconfig_config_key_index (configkey), INDEX appconfig_app
id_key (appid), PRIMARY KEY(appid, configkey)) DEFAULT CHARACTER SET utf8 COLLAT
E utf8_unicode_ci ENGINE = InnoDB':
SQLSTATE[42S01]: Base table or view already exists: 1050 Table 'oc_appconfig' already
exists

[Doctrine\DBAL\Driver\PDOException]
SQLSTATE[42S01]: Base table or view already exists: 1050 Table 'oc_appconfig' already
exists

[PDOException]
SQLSTATE[42S01]: Base table or view already exists: 1050 Table 'oc_appconfig' already
exists

Ich gehe davon aus, dass die og. Anweisung syntaktisch und die Parameter für user, DB und PW richtig sind, aber die Tabelle 'oc_appconfig' nicht richtig erstellt werden kann, weil einige Einträge (zB. PRIMARY KEY) nicht den Vorgaben bzw. Erwartungen entsprechen.

Was kann ich tun?

VG kormorix


#3

Wenn bei dbtype sqlite3 steht, dann verwendet deine Installation eine sqlite3-Datenbank. Wenn mit sqlite3 alles so funktioniert wie es soll und nichts fehlt, dann würde ich an deiner Stelle einen Datenbank-Dump der MySQL-Datenbank erstellen, dann alle ownCloud-Tabellen der MySQL-Datenbank (beginnen alle mit "oc_") löschen und dann die Migration durchführen.

Für mich klingt dein Problem so, als wäre die Mysql-Tabelle auf dem Stand einer älteren Installation.

Edit: sieht so aus, als würde occ db:convert-type mit ownCloud 10.0 gar nicht funktionieren:


Benutzt du ownCloud 10.0?


#4

Hallo Bernie_O,
danke für die Antwort!

Ja, lt. OC/Administration/Allgemein:
version 10.0.7.2
versionstring 10.0.7

Ich denke mal, ich lasse es momentan so wie es ist, denn es funktioniert alles mit sqlite.
Die Gefahr, durch einen Migrationsversuch die momentane einwandfreie Funktion meiner Installation zu gefährden ist mir doch zu hoch.
Dann lasse ich mich lieber von dem Hinweis nerven.
Vielleicht gibt es ja irgendwann eine funktionierende Migrationslösung.
Thread kann abgeschlossen werden.

Besten Dank nochmal &
VG kormorix