Samuel,
 
você poderia exportar o conteúdo do ZODB para um formato plain-text (CSV, XML, 
etc.) e daí importá-lo ao SGBDR. 
 
Um exemplo desse script segue abaixo:
 
[]s
 
Alexandre J Denstone
[EMAIL PROTECTED] 
 
 
 
def findContent(root, CacheMinimize):

        meta = str(root.__class__).split()[2].split('.')[-1]

        print root.id, meta

        if hasattr(root, '_objects'):
        
                dict_objs = root._objects
                for dict_obj in dict_objs:
                        
                        objPath = '/'.join(root.getPhysicalPath()) + '/' + 
dict_obj['id']

                        obj = app.unrestrictedTraverse(objPath)

                        try:

                                # é necessário para 'recuperar' o objeto do ZODB
                                obj.getId()

                                try:
                                        # para testar se a classe tem o atributo
                                        if hasattr(root, 'titulo'):
                                                # para testar se é uma função 
ou propriedade
                                                if callable(root.titulo):
                                                        titulo = root.titulo()
                                                else:
                                                        titulo = root.titulo
                                                print titulo
                                except:
                                        pass

                        except:
                                print "Unexpected error:", sys.exc_info()[0]
                                print objPath
                                pass

                        # 'flush' do cache para liberar memória
                        found += 1
                        if found % 1000 == 0:
                                CacheMinimize()

                        findContent(obj, CacheMinimize)


swhome=r'C:/zclientintra'
import sys
sys.path.insert(0, '%s/lib/python' % swhome)
sys.path.insert(1, '%s/bin/lib' % swhome)
sys.path.insert(1, '%s/bin/DLLs' % swhome)
sys.path.insert(2, '%s/bin/lib/plat-win' % swhome)
sys.path.insert(3, '%s/bin/lib/win32' % swhome)
sys.path.insert(4, '%s/bin/lib/win32/lib' % swhome)
sys.path.insert(5, '%s' % swhome)
sys.path.insert(6, '%s/bin/lib/win32com' % swhome)

import Zope
app = Zope.app()

CacheMinimize = 
app.unrestrictedTraverse('Control_Panel/Database/manage_minimize')

objs_path = ['/']

for obj_path in objs_path:
        findContent(app.unrestrictedTraverse(obj_path), CacheMinimize)

get_transaction().commit()
app._p_jar.close()

Esta mensagem, incluindo seus anexos, pode conter informacao confidencial e/ou 
privilegiada. Se voce recebeu este e-mail por engano, nao utilize, copie ou 
divulgue as informacoes nele contidas. E, por favor, avise imediatamente o 
remetente, respondendo ao e-mail, e em seguida apague-o. Este e-mail possui 
conteudo informativo e nao transacional. Caso necessite de atendimento 
imediato, recomendamos utilizar um dos canais disponiveis: Internet Banking, 
Atendimento por Telefone ou agencia/representante de atendimento de sua 
conveniencia. Agradecemos sua colaboracao.

Responder a