Deaktivieren Sie zunächst in der Ausgangsversion die automatische Indizierung und löschen den ZCatalog-Objekt per "Zope View".
Der empfohlender Update-Pfad sehr alter ZMS-Versionen lautet

Step 1. zms2-2.9.4-41.tar.gz
Step 2. zms2-2.10.3-18_1.tar.gz
Step 3. zms2-2.10.5-24.tar.gz
Step 4. zms2-2.13.4.1555.tar.gz
Step 5. zms-latest.tar.gz

Sollten diese Schritte nicht eingehalten sein oder die Daten werden per ZEXP von einem System auf das andere transportiert, kann die Entfernung alter ZMS-Artefakte, die im Rahmen der Update-Prozedur duchlaufen wurde, ausgeblieben sein und diese können in der ZODB persitieren. Auch wenn das Uopdate bei aktiver Dokument-Versionierung durchgeführt wurde, können Akrtefakte eines alten Content-Models im Baum unbemerkt "überleben". Schlimmstenfalls kann dies den Start der Zope-Instanz unterbrechen. Daher sollte in der letzten noch lauffähigen ZMS-Version bzw. bevor ein ZEXP-Eport durchgeführt das reduzierte metaobj-Modell des Zielsystem mit Hilfe des folgenden Py-Script erzeugt werden.

Zope-Screen

Typische Fehlermeldung beim ZEXP-Import verursacht durch residuale Artefakte im ZMS-Baum:
ErrorValue: No module named zmsgraphic
ErrorValue: No module named zmsfile.
 
Die Artefakte können mit dem folgenden Py-Script aus dem Baum gelöscht werden.

 

Zope-Script für die Artefakt-Entfernung

## Script (Python) "cleanup_html"
##bind container=container
##bind context=context
##bind namespace=
##bind script=script
##bind subpath=traverse_subpath
##parameters=
##title=
##

# doc_elmnt = container.content
doc_elmnt = context.content

invalid_keys = ['ZMSDocument','ZMSFolder','ZMSGraphic','ZMSLog','ZMSNote','ZMSRubrik','ZMSTable','ZMSTextarea','ZMSSysFolder','ZMSTeaserElement','ZMSTeaserContainer',]

def visit(context):
  rtn = []
  if context.meta_type=='Folder' or context.meta_type.startswith('ZMS'):
    if context.meta_type.startswith('ZMS'):
      d = context.operator_getattr(context,'__dict__')
      rtn.append(context.absolute_url()+" "+context.meta_type+" "+str(filter(lambda x:not x.startswith("_"),d)))
      for x in filter(lambda x:not x.startswith("_"),d.keys()):
        try:
          v = context.operator_getattr(context,x,None)
          if v is not None:
            t = str(context.operator_gettype(v))
            if t=='<type \'Acquisition.ExplicitAcquisitionWrapper\'>':
              context.operator_getattr(context,'_delObject')(x,suppress_events=True)
              rtn.append(context.absolute_url()+" "+context.meta_type+" "+x+" DELETED")
        except:
          rtn.append(context.absolute_url()+" "+context.meta_type+" "+x+" DELETE FAILED")
      for key in ['oRoot','oRootNode','oCurrNode','bInRootTag','bInCData',]:
        val = context.operator_getattr(context,key,None)
        if val is not None:
          context.operator_delattr(context,key)
          rtn.append(context.absolute_url()+" "+context.meta_type+" "+key+" DELETED")
      for key in filter(lambda x:not x.startswith("_"),context.operator_getattr(context,'__dict__')):
        val = context.operator_getattr(context,key,None)
        if val is not None and str(val).startswith('{{') and context.operator_getattr(val,'aq_parent',None) is not None:
          clone = context.operator_getattr(val,'_getCopy')()
          rtn.append("CLONE "+context.absolute_url()+" "+context.meta_type+" "+key+" "+str(context.operator_getattr(clone,'__dict__')))
          context.operator_setattr(context,key,clone)
  for ob in context.objectValues():
    if ob.meta_type in invalid_keys or ob.id in ['Special_Objects','acl_metapatterns'] or str(ob.id).endswith("~"):
      rtn.append(ob.absolute_url()+" "+ob.meta_type+" DELETED")
      context.operator_getattr(context,'_delObject')(ob.id,suppress_events=True)
    elif ob.meta_type=='Folder' or ob.meta_type.startswith('ZMS'):
      rtn.extend(visit(ob))
  return rtn

print '\n'.join(visit(doc_elmnt))
return printed

Für eine rekursive Ausführung über eine multisite wird folgender Ausdruck ersetzt:

- if ob.meta_type.startswith('ZMS'):
+ if ob.meta_type=='Folder' or ob.meta_type.startswith('ZMS'):

Erstellt von: Dr. F. Hoffmann , erstellt am:  24.01.2012 , zuletzt geändert: 04.12.2012