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