Magento – mysql PHP Script neu laufen lassen

Sollte es vorkommen, dass eine von einer Extension erstelle Datenbank Tabelle oder mehrere nicht mehr da sind, wo sie sein sollten, müsste man das Script erneut laufen lassen, welches die erforderlichen Daten schreibt.

Häufig liegen diese im Ordner app/code/[community oder local]/[Extensionprogrammierer]/[Extensionname]/sql/[extension]_setup und haben solch klingende Namen wie mysql4-install-0.1.0.php oder mysql4-upgrade-0.1.0-0.1.1.php

Um das Script erneut laufen zu lassen und so Tabellen zu erhalten, kann man leider weder die o.g. Dateien einfach über kopieren noch die Extension deaktivieren und dann wieder aktivieren. Der Installationsprozess wird nicht neu gestartet.

Um dies zu erreichen gibt es einen einfachen Trick: In der Datenbank die Tabelle core_resource öffnen und nach der entsprechenden Extension suchen. Hinter dem Namen der Extension (“x-y-extension_setup”) stehen dann zwei Zahlen. Dies ist die Versionsangabe. Eine Installation wird nur dann durchgeführt, wenn die hier angegebene Version geringer ist als die in der Extension.

Es gibt nun also drei Möglichkeiten die Extension zur Installation der “alten” Tabelle(n) zu bringen:

1. Den Eintrag der “x-y-extension_setup” komplett löschen
2. Sicherer ist den Eintrag umzubenennen z.B. in “x-y-extension_setup_bak”
3. Die Versionsnummer runter zu setzen

Die Möglichkeit die Extensionversion in den Dateien hoch zu setzen lasse ich bewusst aus, da dann zukünftige Updates evtl. nicht funktionieren.

Ich habe mich für Schritt 2 und dann -nachdem die Installation geklappt hat und der neue Eintrag vorhanden war (sowie die Tabelle)- für Schritt 1 entschieden. Also zuerst umbenannt, damit man im Zweifelsfalle wieder zurück umbenennen kann, und nachdem alles geklappt hat, die alte und umbenannte Zeile gelöscht.

Genutzt in Magento Version 1.7. Fragen, Kommentare, Vorschläge? Gerne direkt oder als Kommentar.

Published by Covos

Seit 2009 arbeite ich nun intensiv mit Magento. Begonnen habe ich mit der Erstellung und dem Betrieb von B2C-Shops. Ausgeweitet wurde dies durch meine Tätigkeit im Logistik-Sektor. Hieraus entstanden erste spezialisierte B2E-Systeme. Heute arbeite ich tag-täglich mit spannenden B2C-, B2B- und B2E-Projekten und berichte in diesem Blog über Herausforderungen und gebe Insider-Tipps.

Leave a Reply

Your email address will not be published. Required fields are marked *