Datenbankmigration (Update) 5.5.10 zu 5.6.2 ... bitte um eine gute Idee :-)

so langsam verzweifle ich :frowning:

Ich habe eine Odyssee hinter mir… mit Ubuntu Updates und verschiedenen MSSQL Migrationen. Auch haben mich nicht kompatible Plugins so ein um das
andere Mal ein Backup einspielen lassen…. Aber ich höre schon auf zu jammern ….

Durch die abgebrochenen Migrationen auf 5.6.2 habe ich wohl eine Inkonsistenz der Datenbank, d.h. eine  Mischung aus 5.5.1 und 5.6.2 ……

Das wäre alles nicht so schlimm …da ich ja gerne beim Migrationsassistenten die Tabellen vorher löschen kann (über phpmyadmin). 
Leider treten aber jetzt Fehlermeldungen auf die ich nicht mehr fixen kann L wie z.B. diese:
 

*//
Error Received the following error message:
Could not apply migration (Migrations_Migration1623). Error: SQLSTATE[42S21]: Column already exists: 1060 Duplicate column name ‘content_type’
Please try to fix this error and restart the update.
Response
{“valid”:false,“errorMsg”:"Could not apply migration (Migrations_Migration1623). Error: SQLSTATE[42S21]: Column already exists: 1060 Duplicate column name ‘content_type’ "}
*//

Ich bin mir bewusst was diese Fehlermeldung aussagt aber und mein Versuch diesen „Column“ zu löschen wurde prompt mit der nächsten Fehlermeldung beantwortet….
To make a long storry short: Gibt es eine Möglichkeit die durch den Migrationsassistenten (5.6.2) bearbeiteten Tabellen, Views …etc. zu reinitialisieren --> auf 5.5.10?

Vielen Dank für Eure Unterstützung

LG

 

Jörg

PS: Hier noch die Systemkonfiguration:
System: 5.5.10
PHP: 7.2.19
Ubuntu: 18.04.2
Datenbank: Server-Version: 10.1.41-MariaDB

Also bei einer kaputten Datenbank ist es wohl eher ratsam erst einmal wieder ein Backup einzuspielen (sollte ja vorher gemacht worden sein).

Was in der Migration passiert kann man sich ja anschauen:

class Migrations_Migration1623 extends Shopware\Components\Migrations\AbstractMigration
{
    public function up($modus)
    {
        $this->addSql('ALTER TABLE `s_core_menu`
ADD `content_type` varchar(255) COLLATE \'utf8_unicode_ci\' NULL;
');

        $this->addSql('INSERT INTO `s_core_menu` (`parent`, `name`, `onclick`, `class`, `position`, `active`, `pluginID`, `controller`, `shortcut`, `action`, `content_type`)
VALUES (\'23\', \'Inhaltstypen\', NULL, \'sprite-application-form\', \'0\', \'1\', NULL, \'ContentTypeManager\', NULL, \'index\', NULL);');

        $this->addSql('CREATE TABLE `s_content_types` (
  `id` int NOT NULL AUTO_INCREMENT PRIMARY KEY,
  `internalName` varchar(100) NOT NULL,
  `name` varchar(100) NOT NULL,
  `source` varchar(100) DEFAULT NULL,
  `config` text NOT NULL
);');

        $this->addSql("INSERT IGNORE INTO `s_core_acl_resources` (name) VALUES ('contenttypemanager');");

        $this->addSql('SET @resourceId = LAST_INSERT_ID();');

        $this->addSql("INSERT IGNORE INTO `s_core_acl_privileges` (resourceID,name) VALUES (@resourceId, 'read');");
        $this->addSql("INSERT IGNORE INTO `s_core_acl_privileges` (resourceID,name) VALUES (@resourceId, 'edit');");
        $this->addSql("INSERT IGNORE INTO `s_core_acl_privileges` (resourceID,name) VALUES (@resourceId, 'delete');");
    }
}

Entsprechend könnte man es nachstellen.

 

Hallo H4M,

danke für Deine schnelle Antwort. Bei den ersten 10 Fehlermeldungen habe ich mich auch über die Migrationsscripts durchgehangelt aber leider nimmt das 
wohl kein Ende … und ehrlicherweise bin ich dann wirklich etwas überfordert :frowning:  

Der Shop läuft rund … ich kann halt keine Updates mehr machen…  daher dachte ich ggf. an eine leere 5.5.10 DB-Struktur

Nur mal so ein Gedanke…

LG

 

Jörg 

Wenn der Anschein besteht, dass die Datenbank derart versaut ist, dann wäre ggf. eine originale 5.5.10 Version angebracht - sofern noch nicht 1000000 Artikel schon eingepflegt.

… na 1 Milionen Artikel sind es noch nicht ganz… und der Gedanke einfach eine DB Version 5.5.10 (Struktur) zu nehmen kam mir auch schon…

Aber ich muss ja dann meine Daten in diese Umgebung transportieren und da habe ich die Sorge, dass mir das SQL stürzt da ggf. Tabellenerweiterungen mit Datensätzen vorhanden sind… und ich wüsste nicht wie ich das abfangen kann… :frowning:

oder können Fehler beim Import ignoriert werden?
 

Hoffe Du kannst meinen wirren Gedanken folgen…

Viele Grüsse 

 

Jörg

Ich kann das Ausmaß nur schwierig abschätzen, aber es wundert mich schon wie eine Datenbank so schlimm kaputt sein könnte. Vor einem Update macht man üblicherweise ein Backup und prüft die Plugins. Ansonsten muss man sich die Mühe machen und Tabelle zu Tabelle mit der aktuellen SW Version vergleichen und ggf. anpassen. So ein Spaß hatte ich kürzlich auch. Dauert zwar ein wenig, aber so gehen keine Daten verloren und Stück für Stück kann man den Shop wieder herrichten.

1 Like

Hallo R4M,

habe das Problem mit recht viel Aufwand gelöst! Hoffe ich konnte dem Kollegen der ein ähnliches Problem hat
zumindest etwas Hilfestellung geben.
https://forum.shopware.com/discussion/comment/257370/#Comment_257370

Dir vielen Dank für Deinen super Support! “DANKE”

Liebe Grüsse

Jörg