Update von 6.5.8.7 auf die aktuelle Version

Hallo,

ich möchte auf die aktuelle Version von SW updaten. Dazu versuche ich, alle Erweiterungen zu deaktivieren.

Dabei erhalte ich bei allen Erweiterungen:

 Internal Server Error
Error: Class Shopware\Core\Migration\V6_5\Migration1694426018AddEntityIndexToStateMachineHistory contains 1 abstract method and must therefore be declared abstract or implement the remaining methods (Shopware\Core\Framework\Migration\MigrationStep::updateDestructive)

Natürlich bleibt auch das Update an sich bei der Deaktivierung der Erweiterungen hängen.

Die Datei existiert:

<?php declare(strict_types=1);

namespace Shopware\Core\Migration\V6_5;

use Doctrine\DBAL\Connection;
use Shopware\Core\Framework\Log\Package;
use Shopware\Core\Framework\Migration\MigrationStep;

/**
 * @internal
 */
#[Package('core')]
class Migration1694426018AddEntityIndexToStateMachineHistory extends MigrationStep
{
    public function getCreationTimestamp(): int
    {
        return 1694426018;
    }

    public function update(Connection $connection): void
    {
        $indexes = $connection->executeQuery('
            SELECT INDEX_NAME FROM information_schema.STATISTICS
                WHERE table_schema = :database
                  AND table_name = \'state_machine_history\'
                  AND (COLUMN_NAME = \'referenced_id\'
                    OR COLUMN_NAME = \'referenced_version_id\');
        ', ['database' => $connection->getDatabase()])->fetchFirstColumn();

        if (!\in_array('idx.state_machine_history.referenced_entity', $indexes, true)) {
            $connection->executeStatement('
                CREATE INDEX `idx.state_machine_history.referenced_entity`
                    ON `state_machine_history` (`referenced_id`, `referenced_version_id`);
            ');
        }
    }
}

Kann mir jemand einen Tipp geben, wie ich den Fehler eingrenzen kann?

mfg

Gert

Hallo @Teddie ,

ich bin mir etwas unsicher, was ich hier löschen sollte…

mfg

Gert

Den Migrations-Dateien fehlt laut Fehler die Funktion updateDestructive (warum auch immer, ist schon länger notwendig). Kann auch leer sein, muss aber vorhanden sein.

public function updateDestructive(Connection $connection): void
    {
        // implement update destructive
    }

Stimmt… man bin ich blöd. :man_facepalming:

Hallo @Anotherone,

kannst Du mir einen Workaround geben?

Eigentlich habe ich an den Shopdateien keine Änderungen vorgenommen.

mfg

Gert

Merkwürdig, in meinem 6.5.8.7 gibt es die Datei nicht. Ich würde entweder die Funktion updateDestructive nachtragen oder die Datei löschen/verschieben.

Hallo zusammen,

wir haben leider seit Kurzem den gleichen Fehler:

Class Shopware\\Core\\Migration\\V6_5\\Migration1694426018AddEntityIndexToStateMachineHistory contains 1 abstract method and must therefore be declared abstract or implement the remaining methods (Shopware\\Core\\Framework\\Migration\\MigrationStep::updateDestructive)

Updates am Shop oder an Plug-ins führen zu internal Server-Fehlern (500), sodass ein Backup eingespielt werden muss. Aus den Logs konnten wir bis jetzt keine Lösung ableiten.

LG Lutz

Einfach die leere Funktion (siehe oben) nachtragen, aus irgendeinem Grund fehlt die.

Hallo,

für alle, die keine Programmierer sind. Heute - mein Internet läuft wieder stabil - habe ich mich mit dem Problem beschäftigen können.

Howto:
Die Datei aus der Fehlermeldung auf dem Serversuchen, die die oben genannte Funktion nachtragen und speichern.
Die Fehlermeldung erneut provozieren - es wird die nächste Datei angezeigt.

Nach der 10ten Datei funktionierte SW wieder so, wie es sein sollte.

Danke an alle Helfer

Gert

1 „Gefällt mir“

Hallo zusammen :wave:

ich haette hier noch eine Alternative, die etwas schneller geht:

In der Datei vendor/shopware/core/Framework/Migration/MigrationStep.php findet ihr die Zeile

abstract public function updateDestructive(Connection $connection): void;

Wenn ihr die hierdurch ersetzt, sollte es gehen:

public function updateDestructive(Connection $connection): void{
}

Das ist uebrigens auch in neueren Shopware Versionen (z.B. 6.6) so geloest.

Viele Gruesse
Marcus

1 „Gefällt mir“

Dieses Thema wurde automatisch 30 Tage nach der letzten Antwort geschlossen. Es sind keine neuen Antworten mehr erlaubt.