Was mir allerdings etwas Kopfzerbrechen bereitet sind Kunden die sich währen der Updates noch im Shop befinden. Deren Warenkörbe / begonnene Bestellungen dürften wenn ich den OXID soweit richtig verstehe dann in der Datenbank zurückbleiben.
Im besten Fall wären das dann “Leichen”, im schlimmsten Fall (wenn z.B. das Update kurz genug ist) würden sich Artikel im laufenden Bestellprozess ändern (da die zugehörigen PHP Sessions noch intakt wären).
Meine Frage ist es nun: Wie kann ich dieses Problem beseitigen oder umgehen ?
Meine beste Idee ist es momentan während des Updates alle PHP Sessions zu eliminieren und gegebenenfalls oxuserbasket und oxuseritems zu leeren.
Ob das allerdings ein gangbarer Weg ist kann ich mit meiner begrenzeten OXID Erfahrung nicht sagen - auch dazu würde ich mich über Informationen freuen.
machst du nicht den letzten Schritt vor dem ersten ? Wenn es noch keine Anbindung gibt erstelle diese doch erstmal in einem Testshop.
In der Datenbank bleibt m.E. nach nichts über. Die Sessions ist doch auf den Client Rechner ?
Wenn das wirklich relavant sein sollte, um das was du dir da Gedanken machst würde ich die Anbindung zwischen 2 bis 4 Uhr machen. Da ist wenig Traffic.
Ich kann leider keinen Einfluss daruf nehmen wann die Updates durchgeführt werden, das machen die Benutzer der WaWi (ich bin nur für die Technik zuständig).
Was die Sache mit dem ersten Schritt vor dem letzten Angeht:
Ein Testshop läuft schon bei mir lokal - so bin ich erst darauf aufmerksam geworden das OXID offenbar unter bestimmten Bedingungen (oder grundsätzlich ?) Warenkörbe vor dem Bestellabschluss speichert (Tabelle oxuserbaskets / oxuserbasketitems).
Ich möchte derartige Probleme nach Möglichkeit im vornherein berücksichtigen bzw. umgehen - daher die Frage.
SQL: DELETE oxuserbaskets, oxuserbasketitems FROM oxuserbaskets LEFT JOIN oxuserbasketitems ON oxuserbaskets.oxid = oxuserbasketitems.oxbasketid where DATE(oxuserbaskets.oxtimestamp) <= '2011-12-31' AND oxuserbaskets.oxtitle = "savedbasket"
DELETE oxuserbaskets, oxuserbasketitems FROM oxuserbaskets LEFT
JOIN oxuserbasketitems ON oxuserbaskets.oxid =
oxuserbasketitems.oxbasketid where DATE(oxuserbaskets.oxtimestamp) <= ‘2011-12-31’ AND oxuserbaskets.oxtitle = ‘savedbasket’
DELETE oxuserbaskets, oxuserbasketitems FROM oxuserbaskets LEFT
JOIN oxuserbasketitems ON oxuserbaskets.oxid =
oxuserbasketitems.oxbasketid where DATE(oxuserbaskets.oxtimestamp) <= “2011-12-31” AND oxuserbaskets.oxtitle = “savedbasket”
Hier musst du definitiv beim Kopieren von Anweisungen aufpassen. Hochkomma und Anführungszeichen werden je nach Browser beim Kopieren anders übernommen als dargestellt.
OK - aber das Problem liegt in der ersten Zeile:
DELETE oxuserbaskets, oxuserbasketitems FROM oxuserbaskets LEFT
Fehlerausgabe:
3 Fehler wurden während der Analyse gefunden.
Unerwartetes Zeichen. (near “oxuserbaskets” at position 7)
Unerwartetes Zeichen. (near “,” at position 20)
Unerwartetes Zeichen. (near “oxuserbasketitems” at position 22)
Die SQL-Statements sind syntaktisch korrekt, habs grade probiert.
Man muss allerdings Sonderzeichen, insbesondere die Hochkommas, manuell ersetzen, eventuell auch Leerzeichen.
Am besten die Statements in einen Texteditor kopieren und dort editieren oder von hier kopieren:
DELETE oxuserbaskets, oxuserbasketitems FROM oxuserbaskets LEFT
JOIN oxuserbasketitems ON oxuserbaskets.oxid =
oxuserbasketitems.oxbasketid where DATE(oxuserbaskets.oxtimestamp) <= '2011-12-31' AND oxuserbaskets.oxtitle = 'savedbasket';
DELETE oxuserbaskets, oxuserbasketitems FROM oxuserbaskets LEFT
JOIN oxuserbasketitems ON oxuserbaskets.oxid =
oxuserbasketitems.oxbasketid where DATE(oxuserbaskets.oxtimestamp) <= '2011-12-31' AND oxuserbaskets.oxtitle = 'savedbasket';