[GELÖST] Attributmodels werden nicht automatisch erstellt

Da der Thread “Shopware 4.0.5 veröffentlicht” ohne Antwort auf folgende Frage geschlossen wurde hier nochmal: siehe: allgemein-f25/shopware-4-0-5-veroffentlicht-t10576-20.html#p50714 [quote] Hallo, bei mir tritt folgendes Problem auf. Nach Update lt. Anleitung war es nicht möglich sich im Backend anzumelden und das Frontend lieferte eine komplett leere Seite aus. Es werden keine PHP-Fehler angezeigt (ist in der php.ini aktiviert) und auch das error.log ist leer. Ich habe die Ursache lokalisieren können. Was bei mir nicht funktioniert ist die Regeneration des Caches in “engine/Shopware/Models/Attribute”. Dazu muss gesagt werden, dass hier über eigene Plugins diverse SW-Tabellen erweitert werden. Ich denke in diesem Scope ist lediglich die Erweiterung der Tabelle “s_articles_attributes” relevant. Dabei sind die Tabellenerweiterungen für den Betrieb von Shopware selbst irrelevant. Die Felder werden nur für Importzwecke genutzt. Beim Update auf V 4.0.4 gab es das gleiche Szenario, hier hat dies allerdings noch funktioniert (ich musste lediglich NULL Definitionen für die Felder setzen weil die REST-Api ansonsten Fehler geworfen hat). Die Generierung der Modelklassen scheinen folglich auf die Datenbankdefinitionen in SQL direkt zuzugreifen. Durch Rückspielen der alten Modelklassen aus unserem SVN konnte ich das System wieder an’s Laufen bringen. Hier bleibt dann allerdings eine Unsicherheit, ob das System so integer ist. Die Schreibrechte sind in Ordnung, das Datenbank-Update ging ohne Probleme durch, ich habe auch die übrigen Caches, wie in der Update-Anleitung beschrieben, gelöscht. Für Hinweise, was hier schief läuft bin ich dankbar (gerne auch vom Shopware-Team). Gruß, Boris [/quote]

Hi, die Modelgenerierung sollte eigentlich ohne Probleme laufen. Bitte gehen Sie aber trotzdem einmal wie folgt vor. Deinstallieren Sie Ihre eigenen Plugins, die die Models erweitern. Dann sollte das System(falls Sie die Plugins korrekt erstellt haben) wieder Standard sein. Prüfen Sie dann noch einmal ob die Models-Attributes wieder erstellt werden. Denken Sie auch noch an den Cache. Diesen müssten Sie dann auch noch einmal leeren. Überprüfen Sie noch einmal die wichtigsten Datei und Ordnerrechte. Falls dies nichts geholfen hat, gehen davon aus, dass durch Ihre Plugins Ihre Datenbank einen inkonsistenten Stand hat. Gehen Sie dann einmal diesen Wiki-Artikel durch. Dadurch sollten eventuell Fehlende Foreign-Keys bereinigt werden. Viele Grüße, Marcel

Hallo Marcel, ich habe das Foreign-Key-SQL mal ausgeführt, obwohl ich nicht galube, dass wir hier Inkonsitenzen hatten. Caches/Schreibrechte wie schon zuvor ok. Das Deinstallieren des Plugins würde keinen Unterschied machen, da hier (im Gegensatz zu der Shopware-Denke) die Datenbankfelder nicht gelöscht werden. Dies muss auch so sein, da hier Match-IDs für angebundene System hinterlegt sind. Es ist merkwürdig, dass das gleiche Szenario beim vorherigen Update funktioniert hat. Das Plugin legt nur die Datenbankfelder an, eine weitere Integration der Felder in Shopware ist hier für unseren Verwendungszweck nicht erforderlich, oder müsste hier noch was bei SW angemeldet werden? Wenn Ihr einen Tipp habt in welcher Klasse die Models generiert werden, kann ich an dieser Stelle mal ein wenig debuggen. Danke und Viele Grüße, Boris

Hi, wir schauen morgen noch einmal drüber. Dann bekommst du eine genauere Aussage :thumbup: PS: Wir haben das Topic ein wenig konkretisiert :wink: Viele Grüße, Marcel

Hi, die Model Generierung wird normalerweise von den Installationsroutinen der Plugins angestoßen. Die Logik der Generierung findest du in Shopware\Components\Model\Generator.php. Um Fehler im Frontend abzufangen existiert noch das Plugin „SelfHealing“ dieses fängt im Dispatch Prozess Exceptions ab und überprüft ob diese mit den Attribute Models zu tun haben. Sollte dies der Fall sein so wird die Generierung erneut angestoßen. Sollte nach den folgenden Schritten immer noch ein Problem mit den Attribute Models existieren würde ich dich bitten deine FTP, Datenbank, Backend Zugangsdaten einmal an entwicklung@shopware.de zu schicken dann schauen wir uns das Problem vor Ort einmal an. 1. Führe das Foreign Key SQL auf deiner Datenbank aus 2. Lösche alle Dateien aus engine/Showpare/Models/Attribute 3. Kontrolliere die Dateirechte des Ordners 4. Leere den Cache (bitte auch die Proxies) 5. Ruf im Frontend deine Startseite auf (Hier sollte jetzt das SelfHealing Plugin die Modles neu generieren) Mit freundlichen Grüßen Oliver Denter

1 Like

Hallo Oliver, Hallo Marcel, vielen Dank für die Hinweise. Damit konnte ich das Problem lösen. Ursache war eine (nicht mehr benötigte) Hilfstabelle, die ich angelegt hatte. Diese hatte unglücklicherweise das Segment “attribute” im Tabellennamen. Bei dieser Tabelle ist das System bei der Model-Generierung ausgestiegen. Nachdem ich die Tabelle gelöscht habe lief die Model-Generierung durch. Ich denke ich bin da in eine “Konvention vor Konfiguration” Falle getappt. Viele Grüße Boris