Domanda

È necessario aggiornare un vecchio sistema basato su Zope, ho bisogno di essere in grado di esportare i dati in qualcosa di simile a SQL Server ... qualcuno sa di un modo per aprire la Zope DB in .NET o direttamente esportarlo a SQL Server?

Grazie, Kieron

È stato utile?

Soluzione

Sono un web developer Plone, e Jason Coombs è corretta. Lo ZODB è un oggetto Data Base, e contiene oggetti Python. Questi oggetti possono essere codice Python, i dati, metadati, ecc e sono memorizzati in una gerarchia. Questo è molto diverso dal mondo di tabelle SQL e stored procedure. (Il movimento NoSQL in crescita, mostra che Zope non è l'unico a fare questo.) Inoltre, poiché si tratta di oggetti Python complessi si vuole veramente di essere al lavoro sul ZODB con la versione di Python è stato creato con, o assicurarsi che si può fare una migrazione corretta. Non credo che si sarà in grado di fare questo con IronPython.

Senza sapere che cosa si sta cercando di uscire dalla ZODB, è difficile dare consigli specifici. Come suggerito Jason, cercando l'accesso WebDAV / FTP al ZODB potrebbe essere tutto ciò che vi serve. Questo permette di estrarre il contenuto di base delle pagine o file immagine, ma si può perdere gran parte dei dati più complessi (ad esempio una pagina evento non può avere tutti i suoi dati datetime inclusa) e si perderanno gran parte della meta -data.

Ecco come qualcuno migrato da Plone per Word Press:

http://www.len.ro/2008/ 10 / plone-per-wordpress-migrazione /

Ci sono una serie di articoli sulla migrazione da una versione ad un'altra Plone. Alcune di queste informazioni forse utile a voi. StackOverflow non mi permette di pubblicare più link, ma la ricerca di:

"quando la migrazione Plone non riesce a fare solo la migrazione dei contenuti"

"Plone ContentMigration prodotto"

Altri suggerimenti

La prima cosa importante da notare è che l'oggetto di database Zope (ZODB) memorizza oggetti Python nella sua gerarchia. Pertanto, ottenendo "dati" fuori dal ZODB in genere non ha senso al di fuori del linguaggio Python. Quindi, in una certa misura, in realtà dipende dal tipo di dati che si desidera uscire.

Se i dati che state cercando è file (come HTML, documenti, ecc), si potrebbe essere in grado di stare in piedi un server Zope e accendere qualcosa come WebDAV o FTP ed estrarre i file in questo modo.

Il modo in cui hai descritto, però, ho il sospetto i dati che cercate è elementi di dati più capillare (come numeri o conti o qualcosa del genere). In tal caso, sarà quasi certamente bisogno di Python di qualche tipo per estrarre i dati e trasformarlo in un formato adatto per l'importazione in SQL Server. Potreste essere in grado di rimanere all'interno del mondo .NET utilizzando IronPython, ma ad essere onesti, vorrei evitare che se non si può trovare la prova che IronPython funziona con la libreria ZODB.

Invece, vi suggerisco di fare una copia della vostra installazione di Zope e l'istanza Zope (in modo da non rompere il sistema in esecuzione), e quindi utilizzare la versione di Python usato da Zope (spesso installato insieme) di installare il database, e manipolare in un formato adatto. Si potrebbe anche usare qualcosa come pyodbc per la connessione al database di SQL Server per iniettare i dati -. Oppure si può punt, l'esportazione in un formato di file, e utilizzare strumenti siete più familiarità con importare i dati

E 'stato un po' da quando ho interagito con uno ZODB, ma mi ricordo questo articolo è stato determinante nell'aiutarmi a interagire con lo ZODB e capire la sua struttura.

In bocca al lupo!

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top