Re: Performanceverbesserung
"Dieter Maurer" <[email protected]>
| Newsgroups | gmane.comp.web.zope.german |
|---|---|
| Message-ID | <[email protected]> |
Helmut Lichtenberg wrote at 2008-12-16 07:52 +0100:
> ...
>Ist cut & paste eigentlich die Standardmethode für solche Sachen?
>Ich bin mehr dateibasiertes Arbeiten gewohnt und tue mich schwer mit den rein
>GUI-basierten Methoden.
>
>Kann man z.B. diese 25.000 Seiten nicht automatisiert aus der Datenbank
>herausladen und dann an anderer Stelle wieder importieren?
Man kann aber es wäre unnötige Arbeit (sowohl für Dich als auch Laufzeit-Arbeit).
>Oder mit irgendwas
>SQL-ähnlichem gleich innerhalb der Datenbank?
Ja. Das SQL-Äquivalent für die ZODB heißt Python.
Da wir in diesem Fall die Ablagestruktur völlig gleich lassen
wollen, können wir fast vollständig auf Neukatalogisierung verzichten.
Das sorgt dafür, dass die Migration sehr schnell gehen kann.
Schematisch geht es etwa so:
"base" bezeichnet den Folder, der unseren Folder "f" enthält, den
wir durch einen Large-Folder ersetzen wollen.
newLargeFolder = <Konstruktor für PloneLargeFolder>("f")
oldFolder = base.f
# replace "f" with a harmless object to avoid uncataloging and then delete
from OFS.DTMLMethod import DTMLMethod
base.f = DTMLMethod()
base._delObject("f")
# put "newLargeFolder" in its place
base._setObject("f", newLargeFolder)
# now move the content
for v in oldFolder.objectValues():
newLargeFolder._setOb(v.getId(), v)
from transaction import commit
commit()
--
Dieter
_______________________________________________
zope mailing list
[email protected]
https://mail.dzug.org/mailman/listinfo/zope