Я думаю, что то, что вы описываете, является одной из проблем, возникающих в связи с возрастающей сложностью стека Plone, и одной из причин, почему это , а не, рекомендуется выполнить переустановку больше, но предоставить профиль для каждая версия надстройки, посредством шагов обновления (как упоминал Матиас). Это значительно увеличивает время dev-time и приводит к еще большему количеству конфликтов, по моему опыту. Вот Отсносящиеся документы: http://docs.plone.org/develop/addons/components/genericsetup.html#add-upgrade-step
Элизабет Leddy однажды написал Add-On, чтобы облегчить эту боль, и я могу подтвердить, что делает: https://github.com/ampsport/amp.ezupgrade
И отличные ребята из FTW, тоже, я никогда не использовал его , но выглядит многообещающе: https://pypi.python.org/pypi/ftw.upgrade
ни использовал этот один, даже утверждает, что некоторые дополнительные вкусности, как очистки сломаны нефтесервисных объектов и Р. Паттерсон на нем: https://github.com/collective/collective.upgrade
Как мы здесь, первый хороший документ я смог найти об этом ~ 1,5 года назад, происходит от Uwosh, конечно: http://www.uwosh.edu/ploneprojects/docs/how-tos/how-to-use-generic-setup-upgrade-steps
Другим решением может быть, чтобы проверить, если это начально или повторно -install и задавать свойства программно с помощью скрипта Python, который называется «setuphandlers.py», как описано в этом ответе: How to check, if my product is already installed, when installing it? Таким образом, все еще можно инициировать переустановку, не продувая все это.
Наконец, многие GS-xml-файлы понимают значение purge
-property, устанавливая его на False
, не перезаписывая весь файл, а только ваши реквизиты. Это может или не относится к вашему делу, вы можете найти образцы в вышеупомянутом официальном документе.
Лучшей практикой является не переустановка пакета, а создание этапа обновления, в котором устанавливается только дельта (ваши изменения в реестре). Переустановка пакета обычно переопределяет сделанные вами изменения. – Mathias
Написание шагов обновления, например, с ftw.upgrade, также очень хорошо документировано. -> https://github.com/4teamwork/ftw.upgrade – Mathias
@Mathias:: D Да, уже упомянул об этом в ответе ниже. –