Ich bin mal wieder ratlos: Wir arbeiten nun schon so lange mit webEdition aber ein Geheimnis bleibt uns noch immer verborgen.
Wie und wo werden Objekte innerhalb der Datenbank tatsächlich verwaltet und was passiert bei einem Rebuild?
Aktuell haben wir automatisiert (leider fehlerhafte) Daten in die Objekttabelle per<we:write type="object"> importiert. Vorab haben wir ein Backup der Objekttabelle gemacht. Dieses SQL-Backup nach dem ersichtlichen Fehler sofort wieder eingespielt. Mit dem Ergbnis, dass auf der Website alles wieder wie gewohnt zu sehen war. Nur innerhalb webEdition in der Objektverwaltung war und ist noch immer der alte Murks zu sehen. Da halfen auch die vielen Rebuilds nicht viel. Zumal hier auch nicht klar wird, was mit der Option: "Rebuild/Objekte: Wählen Sie diese Option um die Tabellen der Objekte neu zu schreiben. Dies ist nur notwendig wenn die Objekttabellen fehlerhaft sind." gemeint ist. Welche Daten werden als Ursprungsdaten verwendet: die in der Objekttabelle, die in der "tblTemporaryDoc" oder liegen vielleicht noch woanders welche rum (z.B. Versionsdaten)?
Aktuell verwendete webEdition Version: 6.0.0.6 (Update ist geplant)
Und zu guter Letzt noch ein Vorschlag für die Entwickler unter Euch: bei einem Import per PHP als per <we:write type="object"> sollte einfache eine neue Version der Objekte erstellt werden, dann kann ganz anders auf solch einen Fehlerfall reagiert werden. Gleichfalls sollte<we:write type="object"> ein Attribut für den Redakteur erhalten, damit klar ist, wer die Version erstellt hat.
Ansonsten bin und bleibe ich ein großer Fan von webEdition.
Wie werden Objekte tatsächlich innerhalb der DB verwaltet?
-
- webEdition Partner
- Beiträge: 79
- Registriert: Do 4. Mär 2004, 13:00
- Wohnort: Hannover
- Kontaktdaten:
Wie werden Objekte tatsächlich innerhalb der DB verwaltet?
<we:can>yes</we:can>
-
- Senior Member
- Beiträge: 919
- Registriert: Fr 22. Mai 2009, 21:40
- Wohnort: Berlin
- Kontaktdaten:
Re: Wie werden Objekte tatsächlich innerhalb der DB verwalte
Wahrscheinlich habt Ihr nur eine Tabelle gesichert und wiederhergestellt.
Die Daten werden leider redundant in den Tabellen tblObjectFiles und tblObject_X abgelegt, wobei das X für die Klassen-ID steht. Das Backend greift, glaube ich, auf die tblObjectFiles zu.
Die Daten werden leider redundant in den Tabellen tblObjectFiles und tblObject_X abgelegt, wobei das X für die Klassen-ID steht. Das Backend greift, glaube ich, auf die tblObjectFiles zu.
EOF; //totally retired
-
- webEdition Partner
- Beiträge: 79
- Registriert: Do 4. Mär 2004, 13:00
- Wohnort: Hannover
- Kontaktdaten:
Re: Wie werden Objekte tatsächlich innerhalb der DB verwalte
...das ist richtig - nur die relevante tblObject_x wurde als Backup erstellt und wieder eingespielt. In der Tabelle tblObjectFiles werden doch keine Inhalte - also Datenfelder abgelegt?!?
Ich gehe im Moment noch davon aus, dass hier die schicke Tabelle "tblTemporaryDoc" noch die Finger im Spiel hat. Aber von der möchte ich nicht immer ein Backup erstellen wollen, denn die hat eine stattliche Größe von 595 MB.
Die wichtigste Frage die mich jetzt beschäftigt: Kann ich die Objektdaten anhand des SQL-Backups wieder herstellen?
Bin für jeden Hinweis dankbar. helas
Ich gehe im Moment noch davon aus, dass hier die schicke Tabelle "tblTemporaryDoc" noch die Finger im Spiel hat. Aber von der möchte ich nicht immer ein Backup erstellen wollen, denn die hat eine stattliche Größe von 595 MB.
Die wichtigste Frage die mich jetzt beschäftigt: Kann ich die Objektdaten anhand des SQL-Backups wieder herstellen?
Bin für jeden Hinweis dankbar. helas
<we:can>yes</we:can>
-
- Senior Member
- Beiträge: 919
- Registriert: Fr 22. Mai 2009, 21:40
- Wohnort: Berlin
- Kontaktdaten:
Re: Wie werden Objekte tatsächlich innerhalb der DB verwalte
Da fällt mir gerade ein, das gibt es schon (fast). Ab WE 6.0.0.9 bekommt webEdition die Attribute "name" und "onduplicate".helas hat geschrieben: Und zu guter Letzt noch ein Vorschlag für die Entwickler unter Euch: bei einem Import per PHP als per <we:write type="object"> sollte einfache eine neue Version der Objekte erstellt werden, dann kann ganz anders auf solch einen Fehlerfall reagiert werden. Gleichfalls sollte<we:write type="object"> ein Attribut für den Redakteur erhalten, damit klar ist, wer die Version erstellt hat.
Mit onduplicate="overwrite" überschreibst Du das alte Objekt dann. Es würde noch ein Wert für eine neue Version fehlen. Kannst es ja als Feature-Request in den Tracker eintragen.Beim Anlegen von Objekten über Fontpage-Edit läst sich jetzt der Objektunterordner mittels des Attributs parentid spezifizieren. Ebenso läßt sich der Objektname über das Attribut name angeben und dabei über das Attribut onduplicate mit den Werten abort | overwrite | increment festlegen was bei Namensgleichheit passiert (#2860).
EOF; //totally retired
-
- Senior Member
- Beiträge: 919
- Registriert: Fr 22. Mai 2009, 21:40
- Wohnort: Berlin
- Kontaktdaten:
Re: Wie werden Objekte tatsächlich innerhalb der DB verwalte
Bei aktivierter Versionierung ist das bestimmt der Fall. Kann ich aber nichts zu sagen, da ich die Versionierung nie verwendet habe.helas hat geschrieben:Ich gehe im Moment noch davon aus, dass hier die schicke Tabelle "tblTemporaryDoc" noch die Finger im Spiel hat.
Heisst das nun, Du hast die tblObjectFiles zurückgesetzt und die Einträge tauchen dennoch im Backend auf? Ich denke wenn die tblObjectFiles keine entsprechenden Einträge enthällt, ist der Inhalt der tblTemporaryDoc egal.helas hat geschrieben:Aber von der möchte ich nicht immer ein Backup erstellen wollen, denn die hat eine stattliche Größe von 595 MB.
EOF; //totally retired
-
- webEdition Partner
- Beiträge: 79
- Registriert: Do 4. Mär 2004, 13:00
- Wohnort: Hannover
- Kontaktdaten:
Re: Wie werden Objekte tatsächlich innerhalb der DB verwalte
Ich habe nur die Objekt-Tabelle tblObject_x zurückgespielt. Und nun habe ich keine Ahnung woher sich webEdition die Daten zur Anzeige innherhalb webEdition zieht und wie ich die Daten wieder sauber an allen Stellen sehen kann. Denn im Moment können die Objekte nicht ordentlich in webEdition editiert werden - steht ja immer noch Murks drin.
Nach erster Sichtung stehen die Objektdaten auch in der Tabelle "tblTemporaryDoc". Hatte gehofft, diese dort mit einem Rebuild wieder zu "säubern" - ohne Erfolg.
Danke schon mal für Deine Mühe Daniel
Nach erster Sichtung stehen die Objektdaten auch in der Tabelle "tblTemporaryDoc". Hatte gehofft, diese dort mit einem Rebuild wieder zu "säubern" - ohne Erfolg.
Danke schon mal für Deine Mühe Daniel
<we:can>yes</we:can>
-
- Senior Member
- Beiträge: 425
- Registriert: Do 1. Jan 1970, 02:00
- Wohnort: Dresden
- Kontaktdaten:
Re: Wie werden Objekte tatsächlich innerhalb der DB verwalte
Meines Wissens schaut WE zunächst, ob es vom jeweiligen Objekt auch einen Eintrag in der Tabelle "tblTemporaryDoc" gibt. Wenn ja, wird dieser für den Editmode herangezogen. Wenn nein, wird direkt aus der tblObject_X gelesen. Die tblTemporaryDoc ist bei Objekten nur von Bedeutung, wenn Du entweder ein Objekt geparkt hast oder wenn es Objekte gibt, die nach dem Ändern noch nicht veröffentlicht (sondern nur gespeichert) wurden. Ist das nicht der Fall, kannst Du gnadenlos die entsprechenden Einträge aus der tblTemporaryDoc rauslöschen (über phpMyAdmin) und gut ist's.
Gruß,
Alex
Gruß,
Alex
http://www.xport.de – Internet-Agentur für Hotels
http://www.domainpreisvergleich.de – Domain-Preisvergleich inkl. Verfügbarkeits-Check – ist meine Wunschdomain noch frei, und wo registriere ich sie am günstigsten?
http://www.domainpreisvergleich.de – Domain-Preisvergleich inkl. Verfügbarkeits-Check – ist meine Wunschdomain noch frei, und wo registriere ich sie am günstigsten?
-
- webEdition Partner
- Beiträge: 79
- Registriert: Do 4. Mär 2004, 13:00
- Wohnort: Hannover
- Kontaktdaten:
Re: Wie werden Objekte tatsächlich innerhalb der DB verwalte
...zur Auflösung: in der Tabelle "tblTemporaryDoc" sind die Objekte redundant (wie von Alex gedacht) angelegt und können dort auch skrupellos gelöscht werden. Dann werden die Objetdaten (scheinbar) auch aus der jeweiligen Objekttabelle geholt.
Da in der Tabelle "tblTemporaryDoc" die Objekte mehrfach mit dem Unterschied in der Spalte "Active" (bei mir 0 oder 1) eingetragen waren, habe ich mich nicht getraut die Objekte selektiv zu löschen. Auf jeden Fall haben sie sich inhaltlich voneinander unterschieden - mit "1" waren die fehlerhaften abgelegt.
Eine Doku zum webEdition eigenen Handling der Objekte könnte hier Sinn machen. Vorallem bei der Arbeit direkt im Backend bzw. in der Datenbank. Oder wir tragen an anderer Stelle ein paar Tipps und Tricks zum Thema zusammen!?
Grüße aus Hannover, Lars
Da in der Tabelle "tblTemporaryDoc" die Objekte mehrfach mit dem Unterschied in der Spalte "Active" (bei mir 0 oder 1) eingetragen waren, habe ich mich nicht getraut die Objekte selektiv zu löschen. Auf jeden Fall haben sie sich inhaltlich voneinander unterschieden - mit "1" waren die fehlerhaften abgelegt.
Eine Doku zum webEdition eigenen Handling der Objekte könnte hier Sinn machen. Vorallem bei der Arbeit direkt im Backend bzw. in der Datenbank. Oder wir tragen an anderer Stelle ein paar Tipps und Tricks zum Thema zusammen!?
Grüße aus Hannover, Lars
<we:can>yes</we:can>
-
- Senior Member
- Beiträge: 250
- Registriert: Do 1. Jan 1970, 02:00
- Wohnort: Berlin
- Kontaktdaten:
Re: Wie werden Objekte tatsächlich innerhalb der DB verwalte
Hi
[quote="we:willRockYou"]
Bei aktivierter Versionierung ist das bestimmt der Fall. Kann ich aber nichts zu sagen, da ich die Versionierung nie verwendet habe.
quote]
Versionierung hat damit nichts zu tun.
Das sind eigene Tabellen und unabhängige Prozeduren
Die versuchen beim Zurücksetzen auf eine alte Version dann auch die TemporaryDocs wieder auf den alten Stand zu bringen (was es nicht gerade einfacher macht).
Versionierung sollte eigentlich auch bei einem Import (und overwrite) die alte Version in einer eigenen Tabelle sichern. Von dort hätte man dann einfach zurücksetzten können.
Zum Thema temporarydocs überlege ich zur Zeit, ob es nicht sinnvoll wäre, beim Publizieren die entsprechenden Einträge aus den Temporarydocs zu löschen (was die Tabelle kleienr machen würde, eentuell auch einen Rebuild um diese Tabelle zu bereinigen).
Der Eintrag mit Active=0 ist sowieso sinnlos - da war wohl mal irgendwas angedacht um den wiederherstellen zu können, was aber nie realisiert wurde und mit der Versionierung ist das jetzt eigentlich völlig redundant.
[quote="we:willRockYou"]
Bei aktivierter Versionierung ist das bestimmt der Fall. Kann ich aber nichts zu sagen, da ich die Versionierung nie verwendet habe.
quote]
Versionierung hat damit nichts zu tun.
Das sind eigene Tabellen und unabhängige Prozeduren
Die versuchen beim Zurücksetzen auf eine alte Version dann auch die TemporaryDocs wieder auf den alten Stand zu bringen (was es nicht gerade einfacher macht).
Versionierung sollte eigentlich auch bei einem Import (und overwrite) die alte Version in einer eigenen Tabelle sichern. Von dort hätte man dann einfach zurücksetzten können.
Zum Thema temporarydocs überlege ich zur Zeit, ob es nicht sinnvoll wäre, beim Publizieren die entsprechenden Einträge aus den Temporarydocs zu löschen (was die Tabelle kleienr machen würde, eentuell auch einen Rebuild um diese Tabelle zu bereinigen).
Der Eintrag mit Active=0 ist sowieso sinnlos - da war wohl mal irgendwas angedacht um den wiederherstellen zu können, was aber nie realisiert wurde und mit der Versionierung ist das jetzt eigentlich völlig redundant.
Wer ist online?
Mitglieder in diesem Forum: 0 Mitglieder und 13 Gäste