之前經驗是 Plone 2.5 昇級到 Plone 3.1,這次是 Plone 4.0.x 到 Plone 4.1.x。總結地說,這段昇級的挑戰主要是因應 Products.TinyMCE 的調整。
測試流程是先在 Plone 4.0.7 (+ TinyMCE 1.1.10) 安裝 Ploneboard 2.2,安裝過程中遇到 Kupu 的 Resource Type 設定內容要把 Large Plone Folder 取消勾選,存檔生效,不然會有 KupuError,在 Products/SimpleAttachment/setuphandlers.py 第 29 行,已經不認得 Large Plone Folder 型別。
KupuError: Resource type: linkable, invalid type: Large Plone Folder
另外 Products/Ploneboard/skins/ploneboard_templates/add_conversation_form.cpt 第 36 行要檢查 context 和 python:context 的差別。
如果 Plone 4.0.x 改裝 Ploneboard 3.0 以上,會遇到 Products.CMFPlone >= 4.1 的相依問題。另外,Products.Ploneboard/vocabulary.py 視情況要修改:
-from zope.app.schema.vocabulary import IVocabularyFactory +from zope.schema.interfaces import IVocabularyFactory
接著,在 Plone 4.1.5 (+ TinyMCE 1.2.11) 安裝 Ploneboard 3.3 (src from github),把 var/filestorage/Data.fs 和 var/blobstorage 複製到新環境,到 ZMI 執行昇級,過程沒遇到問題,但實際的 Ploneboard conversation view 可能會遇到 RuntimeError:
- URL: file:/home/marr/plone415/buildout-cache/eggs/Products.TinyMCT-1.2.11-py2.6.egg \ /Products/TinyMCE/skins/tinymce/tinymce_wysiwyg_support.pt - Line 6, Column 2 - Expression: <PathExpr standard:u'object|here'> ... - Warning: Macro expansion failed - Warning: <type 'exceptions.KeyError'>: 'support' ... RuntimeError: maximum recursion depth exceeded while calling a Python object
猜想這只發生在使用 TinyMCE 的場合,根據 https://github.com/plone/Products.TinyMCE/pull/22 的說明,改用 nocall 方式,可以解決這問題。
No comments:
Post a Comment