Plone 如何防止在重新安装软件包时覆盖自定义注册表项的值?

Plone 如何防止在重新安装软件包时覆盖自定义注册表项的值?,plone,genericsetup,Plone,Genericsetup,我的包引入了注册表项。重新安装软件包时,不应覆盖站点管理员所做的更改 去罗马有很多路。我选择了ftw升级。我喜欢升级步骤语法的声明方式。可以为诸如propertiestol.xml之类的通用安装xml文件使用升级目录。不需要定义处理程序python代码。升级效果很好。管理员可以从控制面板升级,在我的情况下,添加了新属性。Insomma:对于一个新属性,只需添加以下内容:源和目标版本的升级步骤声明以及找到properties.xml的目录。竖起大拇指 通过提供一个扩展名/install.py文件,

我的包引入了注册表项。重新安装软件包时,不应覆盖站点管理员所做的更改


去罗马有很多路。我选择了ftw升级。我喜欢升级步骤语法的声明方式。可以为诸如propertiestol.xml之类的通用安装xml文件使用升级目录。不需要定义处理程序python代码。升级效果很好。管理员可以从控制面板升级,在我的情况下,添加了新属性。Insomma:对于一个新属性,只需添加以下内容:源和目标版本的升级步骤声明以及找到properties.xml的目录。竖起大拇指

通过提供一个
扩展名/install.py
文件,其中包含
install
方法,您可以试验安装Plone插件时的操作:

def install(portal, reinstall=False):
    if not reinstall:
        setup_tool = portal.portal_setup
        setup_tool.runAllImportStepsFromProfile('profile-your.pfile:default')
通过这种方式,您可以了解Plone在安装时应该做什么

如果需要:卸载时相同:

def uninstall(portal, reinstall=False):
    if not reinstall:
        setup_tool = portal.portal_setup
        setup_tool.runAllImportStepsFromProfile('profile-example.gs:uninstall')
这样可以防止在重新安装时运行卸载步骤

警告:正如Mathias建议的那样,使用quickinstaller->重新安装功能不好


警告:这可能不再适用于Plone 5(对此有公开讨论)。

我认为您所描述的是随着Plone堆栈复杂性的增加而出现的问题之一,也是不建议再执行重新安装的原因之一,但要通过升级步骤(如Mathias所述)为每个版本的加载项提供配置文件。根据我的经验,这大大增加了开发时间,并导致更多的冲突。以下是参考文件:

伊丽莎白·莱迪(Elizabeth Leddy)曾经写过一篇附加文章来缓解这种痛苦,我可以证实它确实做到了:

FTW的好家伙们也是,我从未使用过,但看起来很有希望:

两人都没用过这个,甚至声称有一些额外的好东西,比如清理破碎的s物体和R.Patterson的:

在这里,我在大约1.5年前找到的关于它的第一个好医生来自Uwosh,当然:

另一个解决方案可以是,检查它是初始安装还是重新安装,并通过Python脚本(方便地称为“setuphandlers.py”)以编程方式设置属性,如以下回答中所述: 这样,您仍然可以触发重新安装,而无需将其全部炸毁


最后,许多GS xml文件都理解
purge
-属性,将其设置为
False
,不会覆盖整个文件,只会覆盖您给定的道具。这可能适用于您的情况,也可能不适用于您的情况,您可以在上面引用的官方文档中找到示例。

最佳做法不是重新安装软件包,而是创建一个只安装增量(您在注册表上的更改)的升级步骤。重新安装软件包通常会覆盖您所做的更改。编写升级步骤(例如使用ftw.upgrade)也有很好的文档记录。-->@Mathias::D是的,在下面的回答中已经提到了这一点。提供升级步骤承诺会分散站点管理员重新安装的注意力。卡贾斯:如果你愿意,告诉我们,一切是否顺利。很想知道你在ftw.upgrade方面的经历:-)“NBB”和“NBBB”代表什么?因为这个任务与注册表相关,也许是一个好时机来指出你关于它的文章,我很喜欢:(太糟糕了,djay的文档的链接已经死了。实际上它的后续效果更好:)@IdaEbkes谢谢,我修复了NBB(这只是意大利语的意思)关于注册表文章:我认为这与我的另一篇文章更相关:)是的,太好了,所以对于敏捷站点管理员来说,避免重新安装可以变得更安全。哇,感谢这些信息。升级步骤是一个很好的帮助,它们的消息显示在控制面板上。自从我与plone合作6年以来,一直不建议运行“重新安装”。@vangheem:不建议,对。仍然取决于具体情况,并且是可行的。我喜欢在开发过程中简单地点击“重新安装”,当在配置文件的xml文件中更改道具时,速度要快得多。出于好奇:你使用什么工具来编写它们,或者你是在手动编写它们?