Question

J'ai besoin de mettre à niveau un ancien système basé sur Zope, je dois pouvoir exporter les données vers quelque chose comme SQL Server... est-ce que quelqu'un connaît un moyen d'ouvrir la base de données Zope dans .NET ou de l'exporter directement vers SQL Server ?

Merci Kieron

Était-ce utile?

La solution

Je suis un développeur Web Plone et Jason Coombs a raison.Le ZODB est une base de données d'objets et contient des objets Python.Ces objets peuvent être du code Python, des données, des métadonnées, etc. et sont stockés dans une hiérarchie.Ceci est très différent du monde des tables SQL et des procédures stockées.(Le mouvement NoSQL croissant montre que Zope n'est pas le seul à faire cela.) De plus, comme il s'agit d'objets Python complexes, vous voulez vraiment travailler sur le ZODB avec la version de Python avec laquelle il a été créé, ou assurez-vous que vous peut effectuer une migration appropriée.Je ne pense pas que vous pourrez faire cela avec IronPython.

Sans savoir ce que vous essayez de retirer de la ZODB, il est difficile de donner des conseils précis.Comme Jason l'a suggéré, essayer l'accès WebDAV/FTP à ZODB pourrait suffire.Cela permet d'extraire le contenu de base des pages ou des fichiers image, mais vous risquez de perdre une grande partie des données les plus complexes (par exemple, une page d'événement peut ne pas avoir toutes ses données date/heure incluses) et vous perdrez une grande partie des méta. -données.

Voici comment quelqu'un a migré de Plone vers Word Press :

http://www.len.ro/2008/10/plone-to-wordpress-migration/

Il existe un certain nombre d'articles sur la migration d'une version de Plone à une autre.Certaines de ces informations peuvent vous être utiles.stackoverflow ne me permet pas de publier plus de liens mais de rechercher :

"lorsque la migration plone échoue en effectuant uniquement la migration du contenu"

"Migration du contenu du produit Plone"

Autres conseils

La première chose importante à noter est que la base de données d'objets Zope (ZODB) stocke des objets Python dans sa hiérarchie. Par conséquent, obtenir des « données » de la ZODB ne permet généralement pas de sens en dehors du langage Python. Donc, dans une certaine mesure, cela dépend vraiment du type de données que vous voulez sortir.

Si les données que vous êtes à la recherche est des fichiers (tels que HTML, documents, etc.), vous pourriez être en mesure de supporter un serveur Zope et mettez quelque chose comme WebDAV ou FTP et extraire les fichiers de cette façon.

La façon dont vous l'avez décrit, cependant, je soupçonne que les données que vous cherchez est des éléments de données plus à grains fins (comme des numéros ou des comptes ou quelque chose comme ça). Dans ce cas, vous aurez certainement besoin d'un certain type Python pour extraire les données et le transformer en un format approprié pour importer dans SQL Server. Vous pourriez être en mesure de rester dans le monde .NET en utilisant IronPython, mais pour être honnête, je voudrais éviter que si vous pouvez trouver des preuves que IronPython fonctionne avec la bibliothèque ZODB.

Au lieu de cela, je vous suggère de faire une copie de votre installation Zope et instance de Zope (de sorte que vous ne cassez pas le système en cours d'exécution), puis utilisez la version de Python utilisée par Zope (souvent installés ensemble) pour monter la base de données, et le manipuler dans un format approprié. Vous pouvez même utiliser quelque chose comme pyodbc pour se connecter à la base de données SQL Server pour injecter les données -. Ou vous pouvez punt, exporter vers un format de fichier, et utiliser les outils que vous connaissez mieux pour importer les données

Il a été un moment que je l'ai eu affaire à un ZODB, mais je me souviens cet article a contribué à me aider interagir avec les ZODB et de comprendre sa structure.

Bonne chance!

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top