1
votes

We are currently running Sitecore CMS 6.5 (120706) with the shared source Item Buckets module installed from here:

https://github.com/jerrong/Sitecore-Item-Buckets/tree/master/sitecorepackages/ItemBuckets%206.5%20NET_40/Final

We wish to upgrade to CMS version 7.0. I'm told that there is currently no upgrade path and to expect one in a few months. However we would prefer not to have to wait on this.

Item buckets is used only for a single section of our site. Everything else is delivered via the standard content tree.

We have tried upgrading to 6.6 first as required by the documented upgrade procedure, despite it mentioning later in the instructions that the shared source item buckets module is unfortunately unsupported for upgrade. Confirmed that this definitely does not work, we receive the error:

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)

We also tried disabling Item Buckets by removing the .config files etc. but we had further problems, presumably because of the actual content/data template changes that were made by the Item Buckets update.

We are thinking of trying a clean install of CMS 7.0, and then migrating our custom code base, items in the content tree (including data templates, layouts, renderings, etc) with Sitecore packages to work around the issue.

Can someone validate this approach, or better still suggest a much less painful solution!?

Many Thanks

3

3 Answers

7
votes

(this is not official Sitecore advice as that is still being worked on disclaimer,disclaimer!)

Some ideas that might help ..

First we need to work on the data side of things (forget front end code for a second)

You could Un-bucket your items so that they are again plain Sitecore items. You could then remove the item bucket module templates and fields as you mentioned before (by 'unbucketing' you should now have no reliance on the bucketing templates etc.)

You could also look at creating an 'anti-package' using Sitecore Rocks, either way this should give you a site closer to a site before the item buckets module.

You could then get a base/clean install of 6.5 (120706) and then compare it to your working copy 'master' database using a tool like Sitecore Courier.

Sitecore Courier - https://github.com/adoprog/Sitecore-Courier - Allows you to compare 2 versions of Sitecore DB against each other and make an update package of that difference.

This should make you an update package of all the changes that have been made to your 'master' database so that you can, in theory, install this into a fresh copy of Sitecore.

You could see how far this gets you when you install this update package, in theory then you can re-bucket your section that used the old buckets module but using the new built-in buckets.

Front-end code wise, the old item buckets modules way of accessing the search has been completely re-written as that it now uses Linq To Sitecore. Hopefully this will be easier to migrate and the buckets will still work in largely the same way (hopefully better hehe!)

Like Ruud I would be interested to hear about others techniques for doing this.

Any extra complexity could come from thing like : 1) How much customisation of the core database you have done 2) How many new field types and XAML applications you may have written

3
votes

At this point, there is no good solution for this yet.

If you are actively using the module, there is no way to upgrade right now (not that I know of).

If you are not using the module at all, you can remove everything in Sitecore that has to do with ItemBuckets. This is a manual job for now... (I've done this with success in a 6.5 environment).

To be sure you remove everything, open the item buckets installation package (the ZIP file) to see what items are installed and manually remove all those items from Sitecore (this will include templates, fields, field types, settings).

You can also use the search in the content editor to search for "itembucket" or "item bucket" and find related items that way.

Another way is to search with SQL directly in the master and core database.

Once you have removed everything in Sitecore and configuration that is related to the buckets, rebuild the link database and run a database cleanup (from control panel) and you should be good to go.

It's a dirty job... If anyone has a better way, I'd love to hear about it!

1
votes

the problem you are having there is that the item buckets code was compiled against Lucene.Net 2.9 and Sitecore 7 has v3.0.3.

You could add an assembley binding in in the web.config configuration/runtime section that maps the old version to the new and then fix any issues you get with deprecated methods etc...

You will probably also want to remove the Item Buckets module before the upgrade as suggested as the new bucket templates & items may conflict with the shared source versions. You would at least need to remove the Item buckets config and dll's from the bin folders as these could also conflict.

I don't think there is a simple way of doing it yet or Sitecore would have given out an upgrade path already.