transmogrifier 可以匯入或匯出 Plone 網站的內容,之前的經驗以匯入 CSV 或 PostgreSQL 資料為主,現在完成匯出到 PostgreSQL 的實作。
以 develop.cfg 為例,要修改的內容如下:
eggs +=
psycopg2
SQLAlchemy == 0.6.5
zope.sqlalchemy
plone.app.transmogrifier
客製 myproj.transmogrifier 的內容摘要如下:
myproj.transmogrifier/configure.zcml
<transmogrifier:registerConfig
name="myproj.transmogrifier.exportContent"
title="MyProject Export Content"
description="Transmogrifier Pipeline config to export contents."
configuration="confs/export.cfg"
/>
<!-- register our blueprints -->
<utility
component=".contentexport.ContentExporterSection"
name="myproj.transmogrifier.contentexporter"
/>
myproj.transmogrifier/browser/configure.zcml
<configure
xmlns="http://namespaces.zope.org/zope"
xmlns:browser="http://namespaces.zope.org/browser"
xmlns:zcml="http://namespaces.zope.org/zcml">
<browser:page
for="*"
class=".contentexport.ContentExport"
name="content-export"
permission="cmf.ManagePortal"
/>
<configure>
myproj.transmogrifier/browser/contentexport.py
class ContentExport(BrowserView):
def __call__(self):
transmogrifier = ITransmogrifier(self.context)
transmogrifier('myproj.transmogrifier.exportContent')
self.request.response.write('exported')
myproj.transmogrifier/confs/export.cfg
[transmogrifier]
pipeline =
contentexport
[contentexport]
blueprint = myproj.transmogrifier.contentexporter
dsn = postgresql://myuser:mysecret@localhost:5432/mydb
portal-types = News Item, Event
review-states = published
另外,還有 myproj.transmogrifier/models.py 和 myproj.transmogrifier/contentexport.py 兩個主檔,分別負責資料庫連線和匯出工作。
No comments:
Post a Comment
Note: Only a member of this blog may post a comment.