从Plone'我要我'到'我爱您'——Plone之5.1.5升级到5.2.0

从Plone'我要我'到'我爱您'——Plone之5.1.5升级到5.2.0
本文纪实从 “Plone'我要我'到'我爱您'——Plone之5.1.5升级到5.2.0”之升级过程。
一、准备工作
1、准备Plone5.1.5stage Server,配置必须和Product Server完全一致
2、准备Plone5.2.0测试环境
二、准备插件(非Plone系统核心包)迁移
1、检测插件兼容性
逐个将自己开发或其他三方开发的插件加载到Plone5.2.0测试环境,运行buildout ,bin/instance fg
2、不兼容插件处理
处理不兼容插件有两种方式:
  • 给插件新建一个名为python3的branch,更改代码,以兼容python2.7.x及python3.7.x,并且能正常在Plone5.2.0安装使用
  • 标记出该不兼容插件,在原Plone5.1.5 stage Server环境中卸载该插件
三、准备stage server新的buildout环境
由于Plone5.1.5和 Plone5.2.0有不同的setuptools及zc.buildout版本要求,所以要更新buildout环境:
1、激活stage server的virtualenv环境
[align=left][indent]
source bin/active
[backcolor=rgb(247, 247, 247)]检测该virtenv中python ,确保是python2.7.x系列。[/backcolor]
[/indent][/align]
2、卸载原5.1.5的requirements
pip uninstall  -r requirements_515.txt
3、安装5.2.0的requirements,建立新的buildout环境
pip install -r requirements_520.txt
[backcolor=rgb(247, 247, 247)]四、卸载不兼容插件(可选,如在二.2中,有要卸载的插件,则执行该步骤)[/backcolor]
[backcolor=rgb(247, 247, 247)]
[/backcolor]
完全卸载[backcolor=rgb(247, 247, 247)]在二.2中查找出来的不兼容插件,注意:程序和相关数据都必须完全清除![/backcolor]
[backcolor=rgb(247, 247, 247)]
[/backcolor]
[backcolor=rgb(247, 247, 247)]
[/backcolor]
[backcolor=rgb(247, 247, 247)]
[/backcolor]
[backcolor=rgb(247, 247, 247)]
[/backcolor]

五、更新Plone版本主配置文件
此Plone主版本配置文件和插件配置文件是packages.cfg,注意在四中卸载的插件要拿掉(清除掉)。
1、Plone主版本配置文件部分更新到5.2.0
[buildout]
extensions = mr.developer
show-picked-versions = true
update-versions-file = versionslastprod3.cfg
#overwrite-picked-versions-file = true
extends =
# Known good sets of eggs we may be using
#               http://dist.plone.org/release/5-latest/versions.cfg
#    http://dist.plone.org/release/5.1.5/versions.cfg
#    5.1.1-versions.cfg
    http://dist.plone.org/release/5.2.0/versions.cfg
    pins52.cfg
2、更新插件配置部分
eggs]
main =
    Plone
#    Products.PloneFormGen
#    Products.ContentWellPortlets
#    my315ok.socialorgnization
    quintagroup.seoptimizer
    my315ok.products
    collective.diazotheme.bootstrap
#    dexterity.membrane
#    xtshzz.policy
    xtcs.policy
    xtcs.theme
    qyxycjh.policy
    qyxycjh.theme
    qidejt.theme
    qidejt.policy
    xsgs.policy
    xsgs.theme
    hjzgb.theme
注意上图中#号注释的插件为不兼容的,已拿掉。







设置