如何定义升级加载项的过程?

Dan*_*dez 4 plone

当我更改我写的附加组件的配置文件版本时,我总是收到上面的消息.

此附加组件已升级.旧配置文件版本为10.新配置文件版本为11.没有为此附加组件定义升级过程.有关升级信息,请参阅附加文档,或与附加组件作者联系.

那么我如何定义一个升级add-one的过程呢?

ebr*_*ult 7

在configure.zcml中(或者最好是在configure.zcml中包含的单独的upgrades.zcml中),你需要声明你的升级步骤:

  <genericsetup:upgradeStep
  source="22"
  destination="23"
  title="Remove such js from registry"
  description=""
  profile="Products.MyProduct:default"
  handler=".upgrades.upgrade_22_to_23"
  />
Run Code Online (Sandbox Code Playgroud)

并且您需要一个upgrades.py文件来实现升级步骤(仅作为示例):

from Products.CMFCore.utils import getToolByName

def upgrade_22_to_23(context):
    js_id = '++resource++blabla/blibli.js'
    jsregistry = getToolByName(context, 'portal_javascripts')
    jsregistry.unregisterResource(js_id)
Run Code Online (Sandbox Code Playgroud)

注意:在zcml中,如果您希望将步骤从任何以前的配置文件版本应用到您定位的版本,则源可能会设置为"*".