I exported my content as json files using collective.jsonify and I've created a migration.package and included the exported folder with json files as a 'content'
folder. So far so good.
Next I borrowed ideas from: http://marrtw.blogspot.com/2013/11/transmogrifier-revisited.html
I configured the package to read my transmogrifier pipeline using a setuphandler.py in my package.
Here's my pipeline:
[transmogrifier]
pipeline =
source
disable_versioning
constructor
enable_versioning
deserializer
schemaupdater
reindexobject
transitionsinserter
workflowupdater
logger
[source]
blueprint = collective.jsonmigrator.jsonsource
path = migration.package:content/
[disable_versioning]
blueprint = plone.app.transmogrifier.versioning.disable
[constructor]
blueprint = collective.transmogrifier.sections.constructor
[enable_versioning]
blueprint = plone.app.transmogrifier.versioning.enable
[deserializer]
blueprint = transmogrify.dexterity.deserializer
[schemaupdater]
blueprint = transmogrify.dexterity.schemaupdater
[reindexobject]
blueprint = plone.app.transmogrifier.reindexobject
[transitionsinserter]
blueprint = collective.transmogrifier.sections.inserter
key = string:_transitions
value = string:publish
condition = python:'_transitions' not in item
[workflowupdater]
blueprint = plone.app.transmogrifier.workflowupdater
[logger]
blueprint = collective.transmogrifier.sections.logger
level = INFO
name = Site migration log
key = id
My setuphandlers.py looks like this:
# -*- coding: utf-8 -*-
from Products.CMFPlone.interfaces import INonInstallable
from zope.interface import implementer
from collective.transmogrifier.transmogrifier import Transmogrifier
@implementer(INonInstallable)
class HiddenProfiles(object):
def getNonInstallableProfiles(self):
"""Hide uninstall profile from site-creation and quickinstaller"""
return [
'my.migration:uninstall',
]
def initcontent(portal):
transmogrifier = Transmogrifier(portal)
# profile is defined in my/migration/transmogrify.zcml
transmogrifier('my.jsoncontent.importer')
def post_install(context):
"""Post install script"""
if context.readDataFile('mymigration_default.txt') is None:
return
portal = context.getSite()
initcontent(portal)
def uninstall(context):
"""Uninstall script"""
if context.readDataFile('mymigration_uninstall.txt') is None:
return
# Do something during the uninstallation of this package
When I install my special add-on I get lots of output like this in my log:
2016-01-26 14:52:58 WARNING collective.transmogrifier.constructor Container Plo
ne/tours/images does not exist for item /Plone/tours/images/r-main.jpg │
2016-01-26 14:52:58 INFO Site migration log ur-main.jpg
2016-01-26 14:52:58 WARNING collective.transmogrifier.constructor Container Plone/tours/images does not exist for item /Plone/tours/images/ka-main.jpg
2016-01-26 14:52:58 INFO Site migration log ka-main.jpg
2016-01-26 14:52:58 WARNING collective.transmogrifier.constructor Container Plone/tours/images does not exist for item /Plone/tours/images/museum-main.jpg
At the end of all of that, no new content in my site. Would appreciate guidance on this.