gpt4 book ai didi

plone - 产品依赖关系 : trigger reinstallation

转载 作者:行者123 更新时间:2023-12-05 00:04:01 26 4
gpt4 key购买 nike

我正在为 Plone 开发产品,比如 foo.core .除了那个核心产品,还有几个相关的产品。喜欢 foo.optional .这些相关产品可能在实例中可用,如果可用,则可以安装它们(换句话说:我不能假设代码可用,或者如果可用,应该使用)。

这些相关产品可能会覆盖 foo.core 所做的设置(例如在属性表中)。这工作正常,但如果我重新安装 foo.core ,默认设置又回来了。我想要的是以某种方式自动重新安装 foo.optionalfoo.core在 QuickInstaller 中重新安装。

我能想到的解决方案是:

  • foo.optional已安装,它
    foo.core 注册自己.这
    后者,foo.core ,将处理
    重新安装所有注册
    核心包时的产品
    重新安装。
  • foo.core包裹
    触发其他事件
    包,如 foo.optional , 能够
    听听。事件处理程序将
    然后触发重新安装foo.optional .
  • 确保 foo.core不会覆盖任何设置
    可能是后来定制的
    其他产品。

  • 也许还有更多选择?什么是“Plonish”方法?

    编辑:我知道使用升级步骤可能比重新安装产品更好。但是恕我直言,问题仍然存在:用于升级步骤的通用设置配置文件可能具有在 foo.optional 的通用设置配置文件中修改的设置。包裹。

    所以使用升级步骤让我的问题变得更加困难:我应该如何确定 foo.core的升级步骤是否正确?意味着 foo.optional应该重新安装/升级? (假设仍然是 foo.core 原则上不知道 foo.optional 。)

    最佳答案

    您的问题的解决方案比您提出的要容易得多:

    我们不会像过去更新产品时那样重新安装产品。重新安装产品将导致重新应用您的通用设置配置文件,这就是您的设置被覆盖的原因。

    相反,您现在提供升级步骤。例如,如果您将配置文件版本从 2 更改为 3,那么您将拥有:

    <genericsetup:upgradeStep
    title="Upgrade foo.core from revision 2 to 3"
    description="Adds stuff"
    source="2"
    destination="3"
    handler="foo.core.upgrades.two_to_three.addStuff"
    sortkey="1"
    profile="foo.core:default"
    />

    在升级步骤中,您可以随心所欲,甚至可以重新运行各个导入步骤。

    如果您的产品升级不涉及更改 GS 配置文件,请不要增加 metadata.xml 中的版本。在这种情况下,您显然也不需要升级步骤。

    关于plone - 产品依赖关系 : trigger reinstallation,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6123955/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com