Datenbank Update/Migration auf V6

Guten Morgen !
@leofonic Vielen, vielen Dank. Es hat alles geklappt.
Außer, es gibt statt meiner Artikelbilder nur “Pappkartons”. Ich denke,da muss ich noch irgendwas kopieren/einfügen/ändern. Eine Idee?

Im Admin unter Erweiterungen/Module werde ich gefragt, ob die gelöscht werden können. Es handelt sich dabei um Paypal (nicht Paypal plus) und den Dienstleister secupay.
Muss ich die löschen und neu installieren? Habe zwar unter docs.oxid-esales den Artikel über Module gelesen, doch sind meine Englischkenntnisse nicht so perfekt und ich traue mir ein Update auch nicht zu.

Die Dateien musst du noch aus dem Liveshop kopieren, hier die Anleitung (den Punkt “Database” hast du schon): https://docs.oxid-esales.com/developer/en/6.0/update/eshop_from_53_to_6/files.html

Die Meldung wg. Module kommt daher weil sie in der Datenbank drinstehen aber die Dateien nicht vorhanden sind. Die Module die mit Oxid 6 kompatibel sind kannst du aus dem Liveshop kopieren, dann im Backend die Einträge der restlichen Module löschen und diese neu installieren.

1 Like

Hallo @leofonic, danke für den Link. Nun habe ich auch wieder die dazugehörigen Artikelbilder.
Schönen Restsonntag noch.
Gruß Michael

Versuche mich gerade auch mit der Migration auf V6.

Die Anleitungen habe ich. Bislang habe ich alle Fehlermeldungen in phpmyadmin lösen können.
Jetzt komme ich nicht weiter:

Folgende Meldung:
/*
Add new unique index.
There might be a problem creating this index, if the values in the table are not unique.
*/
ALTER TABLE oxobject2group
DROP INDEX OXOBJECTID,
DROP INDEX OXGROUPSID,
ADD UNIQUE INDEX UNIQ_OBJECTGROUP (OXGROUPSID,OXOBJECTID,OXSHOPID),
ADD INDEX OXOBJECTID (OXOBJECTID)


MySQL meldet:
#1062 - Doppelter Eintrag 'oxidnewsletter-869b794f4984732cae3df165743edb49-oxbaseshop' für Schlüssel 'UNIQ_OBJECTGROUP'

Wie kann ich nun weiter verfahren? Doppelten Eintrag löschen? Mit welchem SQL Befehl? Darf ich überhaupt löschen?

select OXID,OXGROUPSID,OXOBJECTID,OXSHOPID from oxobject2group where oxobjectid='869b794f4984732cae3df165743edb49';

Dann müsstest du beide Datensätze sehen. Einen der beiden Einträge dann anhand der OXID löschen.

delete from oxobject2group where oxid='xxx'

Super! Danke für die schnelle Rückinfo! Es hat funktioniert!

Ich habe die Oxidversion CE6.1.1 auf XAMPP installiert. Läuft mit Installationsdatenbank einwandfrei.
Setze ich nun die Datenbank aus der CE 4.10. ein (nach Anleitung SQL migrate ausgeführt - lief alles ohne Probleme durch) - jetzt erscheint die Offline-Seite auf admin ( Wartungsarbeiten, bitte versuchen Sie es später noch einmal…)

Wenn ich den Namen der SQL ändere wieder auf meine “Installationsdatenbank” (Name: oxid_test), so erscheint das Oxid-Admin-Login.
Gebe ich den Namen “usr_web12345678_2a” für die Datenbank aus CE 4.10. (aber wie geschrieben bereits mit den 2 Migrations-SQL durchlaufen) so erscheint die Wartungsseite.

In der Apache error log steht:
[php7:error] [pid 11116:tid 1948] [client ::1:57042] PHP Fatal error: Uncaught PDOException: SQLSTATE[HY000] [1044] Access denied for user ‘’@‘localhost’ to database ‘usr_web12345678_2a’ in C:\xampp\htdocs\oxid6\vendor\doctrine\dbal\lib\Doctrine\DBAL\Driver\PDOConnection.php:43\nStack trace:\n#0 C:\xampp\htdocs\oxid6\vendor\doctrine\dbal\lib\Doctrine\DBAL\Driver\PDOConnection.php(43): PDO->__construct(‘mysql:host=loca…’, ‘’, ‘’, Array)\n#1 C:\xampp\htdocs\oxid6\vendor\doctrine\dbal\lib\Doctrine\DBAL\Driver\PDOMySql\Driver.php(44): Doctrine\DBAL\Driver\PDOConnection->__construct(‘mysql:host=loca…’, ‘’, ‘’, Array)\n#2 C:\xampp\htdocs\oxid6\vendor\doctrine\dbal\lib\Doctrine\DBAL\Connection.php(360): Doctrine\DBAL\Driver\PDOMySql\Driver->connect(Array, ‘’, ‘’, Array)\n#3 C:\xampp\htdocs\oxid6\vendor\oxid-esales\oxideshop-ce\source\Core\Database\Adapter\Doctrine\Database.php(106): Doctrine\DBAL\Connection->connect()\n#4 C:\xampp\htdocs\oxid6\vendor\oxid-esales\oxideshop-ce\source\Core\DatabaseProvider.php(198): OxidEsales\EshopCommunity\Core\Database\Adapter\Doctrine\Database->connect in C:\xampp\htdocs\oxid6\vendor\oxid-esales\oxideshop-ce\source\Core\Database\Adapter\Doctrine\Database.php on line 938

Hat mir einer einen Tip bitte?

klarer Fall die Verbindung zur Datenbank kann nicht aufgebaut werden, prüfe die Zugangsdaten in der config.inc.php

Das hatte ich gestern auch vermutet. Irgendwo habe ich aber sicherlich einen Denkfehler.
Die Datenbank ist eine Kopie aus CE4.10. Ich hatte dann mehrere Passwörter (auch das der CE4.10.) probiert. Also genau welche Daten übernehmen, wenn ich in XAMPP lokal ausprobieren möchte?
Wie geschrieben. Schreibe ich den Datenbankname aus der Installationsdatenbank in die config.inc.php mit dementsprechenden Passwort, so funktioniert alles.
Ich habe bei diesen Werten jeweils die Daten geändert. Verschiedene Passwörter, Datenbankname, ohne Passwort, mit Passwort…

$this->dbName = '<dbName>'; // database name
$this->dbUser = '<dbUser>'; // database user name
$this->dbPwd  = '<dbPwd>'; // database user password

Ok - ich bin nun weiter.
$this->dbUser = ‘root’; // database user name
Hier hatte ich alle Varianten durch. Root muss hier stehen! Anfängerfehler!

CE 6.1.1 läuft nun bis jetzt alles auf XAMPP!

Man sollte nicht den User Root für sowas nutzen. Am besten einen dedizierten Benutzer in der Datenbank anlegen, der nur die Rechte für die Oxid Datenbank besitzt.
Gruss
Marcel

denke das is nur lokal zum testen… oder?

Viele kopieren nachher die config für produktiv :wink:

Ok, danke für die Tips. Aber tatsächlich nur lokal installiert zum testen. Ich kopiere dann nicht die config!

Funktioniert nun fast alles. Leider hänge ich aufgrund der geringen Kenntnisse hier:
=> WYSIWYGPRO AND THE OUT/PICTURES/WYSIWYGPRO DIRECTORY
Alle Dateien laut Beschreibung in den neuen Ordner kopiert.

Ich hänge bei Schritt 1 fest.

  1. Make the script executable.
  2. Edit the script and configure your database connection at the top.
  3. Execute the script:
  • Go to a shell
  • Change your directory to out/pictures/ddmedia
  • Execute ./index_files_for_mediagallery

zu Punkt 1 => Wie muss ich das machen? Daten habe ich bereits eingetragen in die Datei. Müßte alles passen. Nun hänge ich an der Ausführung.

chmod +x <scriptfile>

Da eine lokale Installation auf XAMPP…

XAMPP shell:
C:\xampp\htdocs\oxid6\source\out\pictures\ddmedia\chmod +x index_files_for_mediagallery.txt
???

Ich bin überfordert…

Ach so, du bist auf Windows. Das Skript ausführbar machen trifft nur auf Linux zu.
In Windows führst du das Skript mit PHP aus.

php index_files_for_mediagallery.php

Vielen Dank für die Rückmeldungen!
Ich lerne täglich dazu! Läuft nun alles.
Module laufen etc. - alles bislang lokal XAMPP installiert.
Module auch über Composer. Alles gut soweit. Der Zugriff auf die alten Daten (habe eine Kopie davon in XAMPP) funktioniert auch bestens.

Eine Frage nun:
In der lang.php bzw. custLang.php befinden sich bei den Umlauten Sonderzeichen.
Es wird alles richtig angezeigt aber ich frage mich, warum diese so installiert worden sind.
Datenbank auf utf8_general_ci

Ich möchte bei der Installation auf den Live-Server diesen Fehler nicht mehr mitziehen.
Was muss ich nun ändern bzw. bei der Neuinstallation beachten?

Der Zeichensatz der lang.php und cust_lang.php ist in der Datei selbst angegeben.

'charset' => 'ISO-8859-15',
oder
'charset' => 'UTF-8',

Beide sind möglich. Die Angabe muss jedoch mit der tatsächlichen Kodierung der Datei übereinstimmen (falls Sonderzeichen vorhanden sind). Am einfachsten kann man es mit einem Editor wie Notepad++ prüfen und ggf. ändern (Menüpunkt “Kodierung”).

Mit dem Zeichensatz der Datenbank hat das nichts zu tun.

Perfekt! Danke für die Rückmeldung!