CMF门户升级帮助程序

collective.upgrade的Python项目详细描述


集合。升级

这个包为升级cmf门户提供帮助,例如plone 站点,支持增量提交,在 一次,以及用于升级 浏览器的事后调试错误。一起,这些 特性大大减少了 制定升级步骤。

还包括一些清理混乱的升级步骤 升级期间的门户,包括清理损坏的对象, 组件和注册。

注意

使用此包将立即将更改提交到zodb。 没有"干运行"选项,因为这与它的目的相反。作为 因此,它不应该在未备份的zodb上使用 以及紧跟在使用前的斑点。也不应该是 直接用于生产,作为升级门户的第一次尝试。

快速启动

在一个有:

[instance1]
recipe = plone.recipe.zope2instance
eggs = ...

添加另一个类似于so的部分:

parts =
    ...
    upgrade
...

[instance1]
...
eggs = ...
    collective.upgrade
http-address = localhost:8080
...

[upgrade]
recipe = zc.recipe.egg
eggs = ${instance1:eggs}
scripts = upgrade-portals
arguments = args=[
    '--zope-conf', '${instance1:location}/etc/zope.conf',
    '--log-file', '${buildout:directory}/var/log/upgrade.log']
...

然后,在运行buildout之后,您可以升级所有plone门户和 他们的附加组件和监视 var/log/upgrade.log中的进度

$ bin/upgrade-portals

或者,您可以在浏览器中打开以下URL 升级所有门户,进度日志将流式传输到 您的浏览器:

http://localhost:8080/@@collective.upgrade.form?submitted=1

有关详细信息,请使用 --help 选项:

$ bin/upgrade-portals --help
usage: upgrade-portals [-h] [-l FILE] [-z FILE] [-d] [-U] [-G PROFILE_ID] [-A]
                       [PATH [PATH ...]]

Upgrade CMF portals in a Zope 2 application using GenericSetup upgrade steps

positional arguments:
  PATH                  Run upgrades for the portals at the given paths only
                        (default: upgrade all CMF portals in the Zope app)

optional arguments:
  -h, --help            show this help message and exit
  -l FILE, --log-file FILE
                        Log upgrade messages, filtered for duplicates, to FILE
  -z FILE, --zope-conf FILE
                        The "zope.conf" FILE to use when starting the Zope2 app.
                        Can be omitted when used as a zopectl "run" script.
  -d, --disable-link-integrity
                        When upgrading a portal using plone.app.linkintegrity,
                        disable it during the upgrade.
  -u, --username
                        Specify username to use during the upgrade (if not
                        provided, a special user will run the upgrade).

upgrades:
  -U, --skip-portal-upgrade
                        Skip running the upgrade steps for the core Plone
                        baseline profile.
  -G PROFILE_ID, --upgrade-profile PROFILE_ID
                        Run all upgrade steps for the given profile (default:
                        upgrade all installed extension profiles)
  -A, --skip-all-profiles-upgrade
                        Skip running all upgrade steps for all installed
                        extension profiles.

增量提交

由于升级通常是长时间运行的,因此在每个 错误会使故障排除和调试非常耗时 消费。但是,提交 由于无法保证 清除升级步骤的部分执行。

幸运的是,升级步骤支持 products.genericsetup 配置文件提供了一种增量提交升级进度的好方法。 以一种风险小得多的方式,可以节省大量的时间 升级故障排除和调试过程。

collective.upgrade的核心是upgrader c支持 使用genericsetup配置文件对门户进行增量升级。 升级从门户的基本配置文件开始,然后继续 升级所有其他已安装的配置文件。在处理每个 配置文件,它在最后一个成功的配置文件版本到达时提交,但是 中止任何一组未成功的升级步骤。

换言之,每当一个 collective.upgrade 升级程序运行时,它 将从上次成功到达的配置文件版本中提取 必须重复已经成功的事情。

要使用此升级程序,您只需访问 @@collective.upgrade.form?提交=1 在门户上查看 升级。或者,您可以使用升级门户控制台 快速启动部分中描述的脚本。

多个门户

另一个表单支持同时升级多个门户。默认情况下 表单将从表单上下文开始并遍历zope of s对象 对找到的每个CMF门户应用升级的树。它也是 可以指定要升级的门户的路径。

它对每个 在每个门户之后进行门户和提交,也可以使用 @@collective.upgrade.form?提交=1 查看 要升级或使用控制台脚本的入口,请参见 开始部分。

命令行脚本

这个包还提供了一个可运行的脚本,可以安装 并用于在不使用 浏览器。脚本将升级消息记录到单独的日志文件中 筛选重复项以使升级过程更容易 监控并检查是否有任何意外问题。如果升级升级 异常情况下,升级程序将中止事务和控制台 脚本将调用pdb.post_mortem() 以允许检查 错误。总之,这些特性使控制台脚本速度更快 迭代升级过程开发的方法。

使用脚本的 --help 选项,或查看快速启动 部分了解详细信息。

协调用户和组

协调两个PluggableauthService插件之间的用户和组。 例如,从本地迁移用户和组很有用 存储插件到稍后添加的LDAP插件。

  1. 导出步骤搜索用户和 与源插件中的组相对应的组。实际使用 找不到与ID完全匹配的搜索名称。

  2. 导出步骤编写一个csv文件,列出 源插件包括那些与id完全匹配的 找到实名匹配项的和没有找到匹配项的。

    此csv可以编辑以添加手动匹配项,并且可以用作 通知其登录名或密码可能更改的用户列表 在源和目标插件之间。

  3. 导入步骤读取要更新的同一csv文件:

    • OFS所有权
    • CMF创建者
    • 本地角色
    • 组成员身份

要使用这些步骤,请确保目标pas插件是第一个 激活的iuserEnumerationPlugin、igroupEnumerationPlugin和 ipropertieslugin插件,然后运行 reconcile\u users 协调组 导出步骤。中生成的csv文件 然后可以编辑和调整导出,直到它们表示 应该应用的更改,这些更改可以放置在 我nside a gs import profile and imported to apply the changes.

升级步骤

此包还注册了plone 3的其他升级步骤。* 升级到4.0,执行以下操作:

< Buff行情>
  • 清除损坏的OFS对象
  • 清除断开的文本索引对象
  • 清除损坏的组件注册
  • 清除损坏的安装程序注册
  • 清除损坏的cmfeditions版本
  • 将cmfeditions文件夹版本迁移到btrees
  • 清除重复的uid

默认情况下,这些步骤可以是 为您可能需要的任何升级注册。如果你发现了 通过注册 现有步骤或新步骤,请告诉我,我可能会将其添加到 此软件包中的注册信息。

包括在运行 清理破碎的物体可能比不清理好 所以。如果您需要 集体升级[步骤] 额外。

未注册的升级步骤函数, collective.upgrade.steps.setdefaulteditor ,可以在zcml中注册 为所有用户设置默认编辑器。它需要 collective.setdefaulteditor 如果 您需要额外的集合升级步骤

collective.upgrade.steps中也提供了助手函数。 模块。这些助手都是用来写你自己的 升级步骤。有关 细节:

< Buff行情>
  • 将站点重置为基线常规设置配置文件和默认扩展名
  • 删除自定义蒙皮对象
  • 清除缺少的外观/主题层
  • 卸载加载项
  • 打包zodb修剪旧的修订历史记录
  • 在plone 5切换到 使用plone.app.registry

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
日期和现在之间的Java时间   java以适当的方式更新jLabel和jTextField   java如何从PQ(单链表)中删除最大值   java可以通过任何方式找出哪些NSF文件属于Domino服务器   java Velocity 2不会设置属性   如何使用java流迭代索引映射列表   maven依赖项在编译期间工作,但在java运行时失败。lang.NoClassDefFoundError&java。lang.ClassNotFoundException   java有没有办法完全隐藏Web应用程序代码?   Android appcompat v7 21库中的java FadingActionBar错误   Eclipse/com中的java AdMob。谷歌。安卓gms。ads.AdView   java My Service表示它正在运行,但其状态尚不清楚,似乎没有绑定   java无法启动Apache Tomcat Web应用程序容器   JDK:java中的命名约定。可丢弃的   Spring SerSecurity中的java身份验证错误   Maven:使用JDK8编译Java7   java在使用ExecutorService时如何管理内存?   comm.jar通信串行端口java   java LibGDX创建动画