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?
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
}
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.
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.
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.