我正在迁移一些Plone 4站点,并注意到迁移后移动整个站点时出现问题。实际迁移很好 - relatedItems和其他关系由迁移脚本很好地处理。但问题是我的临时环境具有与目标生产环境不同的ZODB安装结构,这似乎打破了基于intid的关系。例如,它可能以/ dbXX / mysite形式出现并最终在/ dbYY / mysite上,这使得RelationValue的to_object和from_object都不准确。我看了一下five.intid,它看起来像是基于数据库oid,它可能依赖于路径?
我一直无法找到有关如何处理此问题的任何信息。我得到的印象是,这并不意味着改变路径,但我真的没有选择不在这里改变它。路径不是任意的,它基于实际的ZODB挂载点。我正在考虑两个选项,我想征求反馈意见:
- 作为背景,我正在将zexp移动到Plone 4中的暂存环境(与p4生产完全相同的构建),然后将整个Data.fs移动到Plone 5临时环境(与p5生产完全相同的构建),迁移,然后将zexp转移到生产中。当从Plone 4移动到staging env时,我可以让zope路径镜像它在最终目的地的镜像。此时,relatedItems等应该是基于UID的,不会改变。这里的缺点是Plone 4的任何intid关系都会在这一点上破裂,但我不认为有很多/任何这些关系。
- 基于RelationCatalog和rebuild / cleanup创建所有关系的映射。我想我会通过注意from_attribute,from_path和to_path,并在最后一次移动后重新创建与新intids的关系来做到这一点。在这一点上,我可能必须了解from_attribute的结构。还有其他任何缺点吗?
醇>