Re: __class__ Attribut einer Instanz änd ern

Florian Friesdorf <[email protected]>
Newsgroups gmane.comp.web.zope.german
Message-ID <[email protected]>
Hi Nico

On Wed, Apr 14, 2010 at 08:52:10AM +0200, Nico Grubert wrote:
> Hallo zusammen
> 
> Ich habe einige Content-Objekte, die mit Plone2 und Archetypes
> erstellt wurden. Nun habe ich ein Plone 3 Produkt geschrieben, das
> im Prinzip fast identisch zum alten Produkt ist.
> 
> Angenommen, 'self' wäre eine Instanz eines alten Content Objekts.
> Dann erhalte ich mit self.__class__ folgendes:
> <class 'Products.MyOldProduct.MyOldContentObject.MyOldContentObject'>
> 
> Erstelle ich eine Instanz mit dem neuen Produkt, erhalte ich mit
> self.__class__ für die neue Instanz folgendes:
> <class 'my.package.content.MyNewContentObject.MyNewContentObject'>
> 
> Besteht die Möglichkeit, dass ich den alten Instanzen irgendwie das
> neue Produkt unterschieben kann, so dass das __class__ Attribut auf
> das neue Produkt angepasst wird?

Sofern die Klassen wirklich identisch sind und jetzt nur in einem neuen
Modul leben und anderen Namen haben, dann hilft dir zodbupdate:

http://pypi.python.org/pypi/zodbupdate/0.2

> Falls das nicht geht, müsste würde ich ein Migrations-Skript
> schreiben müssen, das die Daten aller alten Content-Objekte ausliest
> und damit neue Content-Objekte erstellt, die Instanzen des neuen
> Produkts sind.

Das denke ich macht Products.contentmigration, das Andreas schon
gepostet hatte.

-- 
Florian Friesdorf <[email protected]>
  GPG FPR: EA5C F2B4 FBBB BA65 3DCD  E8ED 82A1 6522 4A1F 4367
Jabber/XMPP: [email protected]
  OTR FPR: 9E191746 213321FE C896B37D 24B118C0 31785700
IRC: chaoflow on freenode,ircnet,blafasel,OFTC


_______________________________________________
zope mailing list
[email protected]
https://mail.dzug.org/mailman/listinfo/zope
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.