ich versuche gerade in meiner Testumgebung einen Shop von 6.2.3 auf 6.4.0 zu updaten.
Das Update läuft bis zu dem Punkt “Datenbank migrieren” fehlerfrei.
Wenn ich allerdings den Befehl “vendor/bin/oe-eshop-db_migrate migrations:migrate” ausführe, erhalte ich den folgenden Fehler:
PHP Fatal error: Uncaught Error: Undefined class constant ‘MYSQL_ATTR_INIT_COMMAND’ in /opt/lampp/htdocs/oxid/vendor/oxid-esales/oxideshop-doctrine-migration-wrapper/src/migrations-db.php:25
Ich stelle mir daher gerade die Frage, ob es überhaupt möglich ist, direkt von 6.2.3 auf 6.4 zu updaten.
Oder muss ich einen Zwischenschritt auf die Version 6.3 durchführen?
Normal sollte der Sprung von 6.2 Serie auf 6.4 Serie reibungslos funktionieren.
Deine Fehlermeldung deutet daraufhin, dass Du ein Problem mit den Server Systemvoraussetzungen hast. Bitte prüfen ob die PHP Erweiterung PDO_MySQL auf Deiner Testumgebung installiert ist bzw. in den php.ini Einstellungen aktiviert.
Ich wundere mich allerdings, dass in der php.ini die Extension ein Semikolon vorangestellt hat - sprich auskommentiert ist.
;extension=php_pdo_mysql.dll
Wenn ich das Semikolon wegnehme und den Apache neustarte, erhalte ich allerdings die gleiche Fehlermeldung bei der Datenbankmigration. Auch die PHPInfo bleibt unverändert.
Ja, genau. Meine Testumgebung läuft lokal auf meinem Laptop mit Lubuntu 20.04 und lampp. Daher hat der dll-Eintrag in der php.ini auch keinen Effekt gehabt.
Den Eintrag
php_pdo_mysql.so
kann ich in der php.ini jedoch nicht finden. Da die PHPInfo angibt, dass die Erweiterung PDO_MySQL aktiv ist, gehe ich davon aus, dass die Erweiterung in der lampp-Umgebung standardmäßig integriert ist.
Dein Hinweis mit der CLI-Konfiguration hat mich jedoch, glaube ich, auf die richtige Fährte gebracht.
Lubuntu 20.04 bringt PHP 7.4 mit. Hier fehlt auch die PDO-Extension. Dabei ist mir aufgefallen, dass ich Composer nicht mit lampp verknüpft habe. Composer versucht daher die lokale PHP-Installation sowie die lokale MySQL-DB zu verwenden.
Ich werde daher heute Abend noch mal Composer deinstallieren und anschließend neu installieren und in lampp integrieren. Danach klappt es dann hoffentlich.
Ich gebe noch mal eine Rückmeldung.