我们目前正在运行Sitecore CMS 6.5(120706),其中安装了共享源Item Buckets模块:
我们希望升级到CMS 7.0版。我被告知目前没有升级路径,并期待在几个月内。但是,我们宁愿不必等待这一点。
项目存储桶仅用于我们网站的单个部分。其他所有内容都通过标准内容树提供。
我们已经尝试按照文档化的升级过程的要求首先升级到6.6,尽管它在说明中提到了以后,但遗憾的是,共享源项目存储桶模块不受支持升级。确认这肯定不起作用,我们收到错误:
Exception Details: System.IO.FileLoadException: Could not load file or assembly 'Lucene.Net, Version=2.3.1.3, Culture=neutral, PublicKeyToken=null' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)
我们还尝试通过删除.config文件等来禁用项目存储区,但我们还有其他问题,可能是因为项目存储桶更新所做的实际内容/数据模板更改。
我们正在考虑尝试干净安装CMS 7.0,然后使用Sitecore包迁移我们的自定义代码库,内容树中的项目(包括数据模板,布局,渲染等)以解决此问题。
有人可以验证这种方法,或者更好地建议一个不那么痛苦的解决方案!?
非常感谢
答案 0 :(得分:7)
(这不是Sitecore的官方建议,因为仍在免责声明,免责声明!)
一些可能有帮助的想法......
首先,我们需要处理事物的数据方面(忘记前端代码一秒钟)
您可以取消存储您的商品,以便它们再次成为纯粹的Sitecore商品。然后,您可以删除之前提到的项目存储桶模块模板和字段(通过' unbucketing'您现在应该不依赖于存储模板等。)
您还可以考虑创建一个' anti-package'使用Sitecore Rocks,无论哪种方式,这应该会在项目存储区模块之前为您提供更靠近站点的站点。
然后您可以获得6.5(120706)的基本/干净安装,然后将其与您的工作副本' master'进行比较。使用Sitecore Courier等工具的数据库。
Sitecore Courier - https://github.com/adoprog/Sitecore-Courier - 允许您将两个版本的Sitecore DB相互比较,并制作一个包含该差异的更新包。
这应该会为您提供一个更新包,其中包含对您的'主人所做的所有更改。数据库,以便您可以在理论上将其安装到Sitecore的新副本中。
您可以看到在安装此更新程序包时可以获得多大的帮助,理论上您可以重新使用旧的存储桶模块但使用新的内置存储桶的部分。
前端代码明智地,旧项目桶模块访问搜索的方式已经完全重写,因为它现在使用Linq To Sitecore。希望这将更容易迁移,并且桶仍将以大致相同的方式工作(希望更好的嘿嘿!)
和Ruud一样,我很想知道其他的技巧。
任何额外的复杂性都可能来自: 1)您已经完成了多少核心数据库的自定义 2)您可能编写了多少新字段类型和XAML应用程序
答案 1 :(得分:3)
目前还没有很好的解决方案。
如果您正在使用该模块,则无法立即升级(不是我所知道的)。
如果您根本不使用该模块,则可以删除Sitecore中与ItemBuckets有关的所有内容。 这是现在的手工工作......(我在6.5环境中成功完成了这项工作)。
要确保删除所有内容,请打开项目存储桶安装包(ZIP文件)以查看安装了哪些项目,并手动从Sitecore中删除所有这些项目(这将包括模板,字段,字段类型,设置)。 / p>
您还可以使用内容编辑器中的搜索来搜索“itembucket”或“item bucket”并找到相关项目。
另一种方法是直接在主数据库和核心数据库中使用SQL进行搜索。
删除Sitecore中的所有内容以及与存储桶相关的配置后,重建链接数据库并运行数据库清理(从控制面板),您应该好好去。
这是一份肮脏的工作...... 如果有人有更好的方法,我很乐意听到它!
答案 2 :(得分:1)
你遇到的问题是项目桶代码是针对Lucene.Net 2.9编译的,Sitecore 7是v3.0.3。
您可以在web.config配置/运行时部分中添加一个将旧版本映射到新版本的装配绑定,然后修复您使用已弃用方法等所遇到的任何问题......
您可能还希望在升级之前删除项目存储桶模块,如新存储桶模板&项目可能与共享源版本冲突。您至少需要从bin文件夹中删除Item buckets config和dll,因为这些也可能会发生冲突。
我认为还没有一种简单的方法可以做到这一点,或者Sitecore已经提供了升级路径。