folgender Fall besteht: es wurde ein Artikel - Freitextfeld erstellt, beispielsweise attr_test . Da dieses doch nicht mehr benötigt wird, wird es wieder über die Freitextfeld - Verwaltung gelöscht, dies läuft auch korrekt durch, ebenso wird im Cache - Ordner auf dem FTP auch das Artikel - Model neu korrekt generiert.
Nun zum eigentlichen Fehler: ruft man nach dem Löschen des Artikel - Freitextfeldes die Artikelübersicht im Shopware Backend („Aritkel“ -> „Übersicht“) oder eine Artikel-Detailseite im Frontend auf, erscheint als Fehlermeldung „Column not found (attrTest)“, sowohl direkt im Backend als auch in den Logs.
Folgendes wurde schon unternommen, brachte aber auch keine Lösung:
Neugenerierung des Artikel - Models über die Freitextfeld - Verwaltung (das Model wird dann auf dem FTP im cache - Ordner automatisch aktualisiert)
Neugenerierung der Attribute über die Konsole (sw:generate:attributes)
Löschen des aktuellen production - Ordners im var/cache/ - Verzeichnis
Löschen des OPCaches
Löschen des Browser - Caches
Alle 5 Punkte zusammen führen leider zu keinem Ergebnis, einzig und allein das Freitextfeld wieder hinzuzufügen, behebt das Problem (ist ja aber nicht Sinn der Sache).
Hat noch jemand eine Idee, woran es noch liegen könnte? Alle verfügbaren, möglichen Cache wurden ja schon gelöscht / erneuert, trotzdem funktioniert es nicht.
Also das Feld ist auf jeden Fall aus allen Datenbank - Tabellen weg, wo es durch die Freitextfeld - Verwaltung hinzugefügt wurde. Es dürfte also auch in der Datenbank nirgends mehr vorhanden sein, da es auch nur zum Test angelegt wurde und auch noch gar nicht in Nutzung ist / war.
Die Fehlermeldung im Log-Verzeichnis sagt folgendes:
Next exception ‘Doctrine\DBAL\DBALException’ with message 'An exception occurred while executing 'SELECT … SQLSTATE[42S22]: Column not found: 1054 Unknown column ‘productAttribute.attr_test’ in ‘field list’.
Im Prinzip hab ich oben ja schon alle 5 Wege versucht, die sonst bei solchen Fragen genannt wurden, auch von Shopware. Nur klappt es trotzdem nicht.
Nach dem Leeren des OP-Caches kommt man zwar wieder auf die Artikel-Detailseite, aber dann kommt beim Betätigen der “In den Warenkorb”-Schaltfläche ein 503-Fehler mit der gleichen Aussage.
Das einzige, was es wieder “repariert” hat, war das Feld wieder hinzuzufügen - aber das ist ja keine wirkliche Lösung, da man sich so die ganze Datenbank - Tabelle irgendwann “voll” macht, bis man keins mehr hinzufügen kann.
welche Datenbank - Tabelle meinst du denn konkret? Man kann ja bei einem Live-Shop nicht 2 Stunden lang alle 300 Datenbank - Tabellen Feld für Feld nach deren Inhalt durchsuchen, ob der Inhalt das Freitextfeld enthält. Schließlich geht, solange das Feld gelöscht ist, der Kaufprozess nicht.
In den 4 Datenbank-Tabellen, wo es beim Hinzufügen hinzugefügt wird, entweder als Spalte oder Eintrag, ist es weg.
OK, wenn es nicht geht, dann weiß ich auch nicht weiter. Ich habe auch keine Vermutung in welcher Tabelle suchen, deswegen schrieb ich es so wie ich es schrieb: Datenbank.
Weiß nicht ob das Thema inzwischen erledigt ist, aber NextMikes Antwort scheint mir schlüssig… globale Suche in der DB mal nach “attr_test”, wenn nix rauskommt mal ein “grep” im var/cache/… vielleicht hängt es da noch bissl rum
Und ehrlich gesagt haben mich die Antworten auch nicht wirklich weitergebracht, da ich wohl kaum einen Liveshop einen Tag offline lassen kann, um alle 300 Datenbanktabellen in Ihren Spalten und Feldwerten nach dem String durchsuchen zu lassen. Wie erwähnt ist das erstellte Artikel - Freitextfeld aus den 4 Datenbanktabellen als Spalte und Feldwert wieder raus, wo es beim Hinzufügen hinzugefügt wird. In noch mehr Datenbanktabellen ist es nicht drin, da brauch ich ansich auch nicht alle 296 anderen durchsuchen.
Ebenso wurden ja auch schon alle Caches gelöscht (per Konsole sowohl des aktuellen production - Ordners als auch den Cache selbst per generate - Befehl), die irgendwo von Shopware verwendet werden und auch alle Models neu generiert. Da kann also auch auf dem FTP nichts mehr rumhängen, weil ja alles korrekt neu generiert wurde.
In der lokalen Testumgebung geht es dagegen problemlos - deswegen auch die Frage nach noch möglichen Caches, die “dazwischen crashen” könnten.
Und ehrlich gesagt haben mich die Antworten auch nicht wirklich weitergebracht, da ich wohl kaum einen Liveshop einen Tag offline lassen kann, um alle 300 Datenbanktabellen in Ihren Spalten und Feldwerten nach dem String durchsuchen zu lassen.
das liest sich so, als ob du keine Lösung haben möchtest. Irgendwo muss attr_test stehen. Man muss es suchen, wenn du aber nicht suchen möchtest…
@NextMike , mir ist echt nicht bewusst, was du mit solchen Beiträgen erreichen möchtest, außer vielleicht das Sammeln von Kommentaren. Man macht ja wohl einen Beitrag aus denen Gründen auf, das man auch eine Lösung für sein Problem haben möchte.
Also nach dem Löschen des Artikel - Freitextfeldes über die Freitextfeld - Verwaltung ist es auch nirgends mehr in der Datenbank (habe ich geprüft), außer als Text in der Tabelle des Logs (“Freitextfeld s_articles_attributes > attr_test wurde gespeichert”), dort macht es ja aber keine Probleme, da es ja nur ein Text ist.
In einer angelegten Testumgebung in einem Unterordner, die eine 1 zu 1 - Kopie der Liveumgebung ist (sowohl FTP als auch Datenbank), funktioniert es dagegen problemlos. Es ist irgendwie also nicht nachvollziehbar, warum es dies in der Liveumgebung nicht tut.
Das Freitextfeld wurde, wie oben zu sehen, auch über die Freitextfeld-Verwaltung von Shopware angelegt (und nicht über ein Plugin) und ist auch noch komplett ungenutzt und leer, wird also auch von keinem Plugin benötigt (sonst würde ja auch der Fehler in der Testumgebung kommen).
Also nach dem Löschen des Artikel - Freitextfeldes über die Freitextfeld - Verwaltung ist es auch nirgends mehr in der Datenbank (habe ich geprüft), außer als Text in der Tabelle des Logs („Freitextfeld s_articles_attributes > attr_test wurde gespeichert“), dort macht es ja aber keine Probleme, da es ja nur ein Text ist.
das klingt jetzt doch anders: „habe ich geprüft“. Vorhin hieß es noch, ich paraphrasiere: „ich weiß nicht wie ich die Datenbank durchsuchen kann“. Jetzt weiß ich, dass du gesucht hast und wir können das schon mal ausschließen. Es ist doch wohl klar, dass attr_test in der Datenbank oder in den Files irgendwo stehen muss, damit es Probleme versuchen kann.
Hast du nur in der Testumgebung die DB durchsucht, oder auch im Livesystem? Eine 1zu1 Kopie würde bedeuten das es nirgends mehr zu finden ist, aber da es noch Probleme verursacht…
Ich würde einfach mal das Livesystem durchgehen - phpmyadmin suche nach attr_test und grep falls nix gefunden wird. Wie NextMike schon sagt: Irgendwo muss es existent sein um Probleme zu verursachen…
ich habe doch oben geschrieben, das ich die komplette Datenbank durchsucht habe - und natürlich meine ich damit auch die Live-Datenbank. Und außer in der Log-Tabelle gibt es keinerlei Einträge mehr von attr_test oder attrTest. Das gleiche gilt für den FTP (das Model wurde ja neu generiert, deshalb steht es auch dort nicht mehr drin).
Es funktioniert eben nur nicht in der Liveumgebung, in der 1 zu 1 - Kopie in einem Unterordner dagegen schon (da muss man nicht einmal den Cache leeren oder irgendetwas).
@sschreier Hast du das Problem lösen können? Ich habe das Gefühl, dass ich das gleiche Problem habe. Ich habe dir dazu eine PM geschickt, würde mich sehr freuen wenn du die beantworten würdest