Ich möchte nicht verwendete EAV-Attribute direkt aus der Datenbank entfernen, bevor ich mein Geschäft in den Live-Zustand versetze. Attribute finden Sie in der eav_attribute
Tabelle. Kann ich Attribute aus dieser Tabelle löschen? Ist es sicher? Oder muss ich auch andere EAV-Tabellen bearbeiten?
28
$installer->removeAttribute('catalog_product', 'my_attribute1');
oder$installer->removeAttribute('catalog_category', 'my_attribute2');
Gibt es eine Möglichkeit, diesen Code in einer separaten Datei zu verwenden? Ich mag die Datei im Stammordner platzieren (wo Magentoindex.php
), so dass es möglich wäre , das Skript im Webbrowser zu nennen:example.com/delete_attributes.php/
. Können Sie mich in die richtige Richtung weisen?catalog/setup
mitcustomer/setup
,catalog_setup
mitcustomer_setup
undcatalog_product
mitcustomer
.Die erste Regel von Magento lautet: Bearbeiten Sie die Datenbank niemals direkt.
Ich gebe zu, dass ich mehrfach gegen diese Regel verstoßen habe, also ... können
Sie die Attribute von löschen
eav_attribute
, die Einschränkungen mitON DELETE CASCADE
sollten den Rest der Tabellen bereinigen.Aber ich denke immer noch, du solltest den sauberen Weg gehen:
Es sollte nicht lange dauern und Sie werden sich in Frieden mit sich selbst fühlen, weil Sie nicht gegen die Regeln verstoßen haben.
Es ist nicht wichtig, für welche Methode Sie sich entscheiden, aber in beiden Fällen ist es wichtig, Ihre Datenbank zu sichern.
quelle
DELETE FROM eav_attribute WHERE eav_attribute.attribute_code = "my_attribute";
DELETE FROM eav_attribute WHERE eav_attribute.attribute_code = "some_attr_code";
ist eine funktionierende Lösung, die ich oft benutzt habe.
Vor allem, wenn Sie die Erweiterung entfernen und Magento weiterhin ein nicht existierendes Attributmodell aufrufen möchte
quelle