当我第一次创建Plone(4.1)网站时,我创建了一个mysite.policy插件,以包含一些自定义用户和自定义工作流.
我需要对工作流程和权限进行一些更正.我更新了src以包含这些更改,但是通过Plone附加组件管理器(卸载 - 安装)更新包不起作用.一旦我卸载所有条目的状态切换到"本地策略",所以当我重新安装时,我无法恢复细粒度状态.
此外,用户权限似乎没有改变.可能是因为它们已经在网站设置时创建.但我无法弄清楚如何编写对权限的更改以及rolemap.xml中的权限设置.我认为xml中的任何内容都是我的plone世界的规则,但这似乎并不起作用.
到目前为止,我手头的书和书中找不到任何相关内容.任何提示如何解决这个问题?也许解决这个问题的唯一方法是通过ZMI进行一系列手动更改,但是这样做不那么优雅了.
有很多选择.我将尝试描述其中的几个.
如果你的变化包括在网站政策的通用安装配置文件(仅改变./src/my/site/policy/profile/default/ -files),你不想自动升级,你可以简单地更新所述轮廓文件并重新运行策略的特定导入步骤:
打开site/manage
您网站的ZMI()并查找portal_setup
.
启用时选择Import -tab portal_setup
.
选择从您的网站策略的配置文件选择配置文件或快照 -list(您的个人资料的标题被定义registerProfile在-directive configure.zcml
或profiles.zcml
您的保单产品).
单击以选择角色/权限映射和工作流工具的导入步骤.
从页面底部,取消选择" 包含依赖项".
单击" 导入所选步骤 -按钮".
如果您的工作流程更新应修改现有工作流程状态的权限,请转到portal_workflow
ZMI 上的-tool并更新安全设置.
这些步骤应仅重新导入站点策略产品的Generic Setup -profile的选定导入步骤.以这种方式重新导入单个步骤应该是非常安全的,但要小心:portal_setup
屏幕上的意外点击可能会产生不可预测的后果.
通过定义名为Generic Setup Upgrade Step的内容,也可以自动执行这些步骤.
我希望您的站点策略产品的默认Generic Setup -profile包含metadata.xml
line <version>1</version>
.
将该行更新为<version>2</version>
.
zcml
使用registerProfile
-directive 打开-file ,然后添加
<genericsetup:upgradeDepends
source="1" destination="2" sortkey="1"
title="Upgrade my.site.policy (1 to 2)"
description="Upgrades my.site.policy's default profile from version version 1 to 2."
profile="my.site.policy:default"
import_steps="rolemap workflow"
run_deps="false"
/>
Run Code Online (Sandbox Code Playgroud)这些步骤应该从概要文件版本1到2注册这样的升级步骤,该步骤重新导入步骤角色图和工作流(rolemap.xml和workflows.xml).您应该能够从Plone站点设置的附加组件屏幕运行升级步骤,现在应该在安装的策略产品之后有一个升级按钮.
正如@toutpt所述,Collective Developer Manual有更多关于升级步骤的例子.如果您曾经想过,为什么建议使用整数metadata.xml
,通常独立于产品的发布版本号',这就是原因:).