Re: how to export data from ZODB to text files

2005-06-10 Thread Josef Meile
Hi Lucasz,

 Thank you so much. I will ask our Plone administrator to test your
 script and I will write about result here.
You are wellcome. I think it is one of the easiest way of doing it.

 I thought also about Python script like
 
 
  //connect to database 
   from ZODB import FileStorage, DB
   storage = FileStorage.FileStorage('Data.fs') 
   db = DB(storage)
   conn = db.open()
   dbroot = conn.root()
 
  //here should be interation for DB which saves attributes output in
 to file
 
 
 I'm not able to write the second part, but I think that this shouldn`t
 be a problem for experienced Python developer. 
 
 How complex will be script like above?
I have to say it would be interesting to do something like that with
ZODB. Specially if you only have the Data.fs and don't have access to
the original Plone site. But I don't know how to do it. You may ask in
the ZODB list:

http://lists.zope.org/mailman/listinfo/zodb-dev

Regards,
Josef

-- 
http://mail.python.org/mailman/listinfo/python-list


Re: how to export data from ZODB to text files

2005-06-10 Thread Josef Meile
Hi again,

 I thought also about Python script like
 
 
  //connect to database 
   from ZODB import FileStorage, DB
   storage = FileStorage.FileStorage('Data.fs') 
   db = DB(storage)
   conn = db.open()
   dbroot = conn.root()
I just found an information that may be useful for you:

* ZODB for Python Programmers By Michael Pelletier:
   http://www.informit.com/articles/article.asp?p=23413rl=1

* A Simple ZODB viewer in wxPython:
   http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/409012

The first link contains some useful examples and explanations. The
second one could help you to see how your zodb is organized. In the
links that Peter post, there is also an useful powerpoint presentation.

According to the first link, the ZODB is a persistent dictionary that
you can access like:

  db = DB(storage)
  connection = db.open()
  root = connection.root()

If I'm not wrong, you could see what objects are in root of your zodb by
doing:

  print root.keys()

After that you could get your plone site by doing:

  ploneSite = root['ploneFolder']

Where if I'm not wrong, ploneFolder may be a key in the root
dictionary. Then if plone is like CMF, it must have a portal_catalog
instance in it, so, you can get it by:

  catalog = getattr(ploneSite,'portal_catalog',None)

If at this point catalog = None, then you have to print the objects in
the plone site by doing:

  print ploneSite.objectIds()

Once you find the catalog object, you could try the script I post before
from the command line.

I haven't tested this, but I hope it helps.

Regards,
Josef Meile

-- 
http://mail.python.org/mailman/listinfo/python-list


Re: how to export data from ZODB to text files

2005-06-08 Thread Max M
ls wrote:

 I'm experienced mostly in C, PHP, also with some backgrounds of CPP
 and Java, but I'm totaly new in Python ... 
 
 What do you suggest in this case?

The simplest approach is to run Zope with the Data.fs file. If you have 
access to the zope instance you want to export from, you only need to 
write an external method in Zope to export the data you want. Its pretty 
easy that way.


-- 

hilsen/regards Max M, Denmark

http://www.mxm.dk/
IT's Mad Science
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: how to export data from ZODB to text files

2005-06-08 Thread Josef Meile
Hi Lukasz,

 Yes, I'm traing to escape from Zope-land, to be more clarify I want to
 migrate from Plone to PHP Application, which uses MySQL database
 engine, so I have to move all data from ZODB to MySQL. I suppose that
 python script shouldn`t be so complex. I need just iterate ZODB and
 write attributes like Intro, Body of article to file for example.
 I need export Plone content hierarchy like
 
 
 Home
|
| - - - Folder 1 (Title, Intro, Body)
|| - - - Article (Title, Intro, Body)
|   
| - - - Folder 2 (Title, Intro, Body)
I haven't done that with Plone, but with CMF, which is the base of
Plone. So, I guess it would be almost the same. You even don't need
the product Peter suggested; you could do a python script inside your
plone site, which searches all the objects you want and print it in
form of a pipe '|' delimited list. Then, once you define your tables
in mysql, you can import the data by copying the output of your
script and saving it into a text file. This is how my script looks like:

catalog=context.portal_catalog
jobs=catalog(
 {
   'meta_type': 'Internship'
 }
  )
OID = 1
for metaJob in jobs:
   jobData=catalog.getobject(metaJob.data_record_id_)
   print %i|%s|%s|%s|%s|%s|%s|%s| % \
 (OID,
  jobData.companyName,
  jobData.companyVision,
  jobData.description,
  jobData.positionOffered,
  jobData.jobProfile,
  jobData.contact,
  jobData.country)
   OID += 1

return printed

Off course, this only work assuming that your fields aren't files like
images or PDFs.

Regards,
Josef

-- 
http://mail.python.org/mailman/listinfo/python-list


Re: how to export data from ZODB to text files

2005-06-07 Thread Peter Hansen
ls wrote:
 I looking for help with ZODB data export to text file. I have file
 Data.fs  
 [snip]
 Could you point me in to some Python code examples, code contributions
 and so on.

You can download the standalone ZODB code and run it under regular 
Python without Zope installed or involved, and use that to access your 
Data.fs file directly.  See http://www.zope.org/Products/StandaloneZODB

This page lists much documentation (near the bottom): 
http://www.zope.org/Wikis/ZODB/FrontPage

-Peter
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: how to export data from ZODB to text files

2005-06-07 Thread John J. Lee
[EMAIL PROTECTED] (ls) writes:

 Hi Peter,
 
 Thank you for your reply. I already can access file using code
 
 
from ZODB import FileStorage, DB
storage =
 FileStorage.FileStorage('mydatabase.fs')
db = DB(storage)
connection = db.open()
root = connection.root()
 
 
 But this is the point where my konwledge ends since I`m not a Python
 programmer. 
 
 I don`t know what is the structure of ZODB, I`m just looking for code,
 or some tool, which I can use to export data from Data.ts file to
 plain text file. 
 
 I`m looking for easiest way to export data from ZODB and put it to
 MySQL later. 
 
 Do you know what way I should choose? I have to know Python language
 to finish this task?

Yes, you do (or hire somebody else who does).  I'm afraid you may
really have your work cut out here!  It really all depends on the
complexity of your application, and how well it was written.  But if
you're shiny-new to Python, Zope, OO databases and all the ideas that
go with these kinds of systems, you may be at the bottom of a longish
ladder -- what's your background?  ZODB is relatively simple and
probably has relatively few quirks as OO persistance systems go, but
still, learning ZODB and a new language at the same time might be
confusing (not to mention finding your way around the application
you're working with).  And Zope is... complicated.

Why are you doing this in the first place?  Trying to escape from
Zope-land?  Exporting data on a regular basis, for use in another app?


John
-- 
http://mail.python.org/mailman/listinfo/python-list