Home My Page Projects OpenAlea
Summary Activity Forums Tracker Lists Tasks Docs News SCM Files

Forum: developers

Monitor Forum | Start New Thread Start New Thread
Pickle and schema evolution [ Reply ]
By: Christophe Pradal on 2007-04-26 13:50
[forum:3171]
Pickle est le mécanisme standard Python pour
écrire et lire des objets sur le disque de façon persistente.

Une des difficultés est de pouvoir relire des objets dont le module, le nom de la classe ou un champ d'une classe a été modifié.

Plusieurs solutions existes:
* Pour restaurer ses données, on peut le faire à la main en suivant les étapes décrites dans l'article de P. O'Brien:
http://www.developertutorials.com/tutorials/python/python-persistence-management-050405/page5.html

* Une autre solution plus sioux est d'utiliser la technique implémentée par enthought dans le module sweet-pickle (http://code.enthought.com/ets/doc/api_docs/enthought.sweet_pickle.html):
+ Une classe a un numéro de version
+ Mapping entre nom de l'ancien module (vs classe) et du nouveau
+ Extension de la classe Unpickler pour renommer
le module, la classe et transformer les états anciens en nouveaux états.