1

現在、Sitecore CMS 6.5 (120706) を実行しており、共有ソースの Item Buckets モジュールが次の場所からインストールされています。

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

CMS バージョン 7.0 にアップグレードしたいと考えています。現在、アップグレード パスはなく、数か月以内にアップグレードされるとのことです。ただし、これを待つ必要はありません。

アイテム バケットは、サイトの 1 つのセクションにのみ使用されます。それ以外はすべて、標準のコンテンツ ツリーを介して配信されます。

共有ソース アイテム バケット モジュールは残念ながらアップグレードでサポートされていないことが手順の後半で言及されていますが、文書化されたアップグレード手順で必要とされるように、最初に 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 ファイルなどを削除して Item Buckets を無効にしようとしましたが、おそらく Item Buckets の更新によって行われた実際のコンテンツ/データ テンプレートの変更が原因で、さらに問題が発生しました。

CMS 7.0 のクリーン インストールを試みてから、カスタム コード ベース、コンテンツ ツリーのアイテム (データ テンプレート、レイアウト、レンダリングなどを含む) を Sitecore パッケージに移行して問題を回避することを検討しています。

誰かがこのアプローチを検証できますか、それともより痛みの少ない解決策を提案できますか?

どうもありがとう

4

3 に答える 3

7

(これは公式の Sitecore のアドバイスではありません。これはまだ免責事項に取り組んでいるためです。免責事項!)

役立つかもしれないいくつかのアイデア..

まず、データ側で作業する必要があります (フロントエンドのコードは少し忘れてください)。

アイテムのバケットを解除して、再びプレーンな Sitecore アイテムにすることができます。次に、前に述べたように、項目バケット モジュール テンプレートとフィールドを削除できます (「バケットを解除」することで、バケット テンプレートなどに依存する必要がなくなります)。

また、Sitecore Rocks を使用して「アンチパッケージ」を作成することもできます。どちらの方法でも、アイテム バケット モジュールの前のサイトに近いサイトが得られます。

その後、6.5 (120706) のベース/クリーン インストールを取得し、Sitecore Courier などのツールを使用して作業コピーの「マスター」データベースと比較できます。

Sitecore Courier - https://github.com/adoprog/Sitecore-Courier - Sitecore DB の 2 つのバージョンを相互に比較し、その違いの更新パッケージを作成できます。

これにより、「マスター」データベースに加えられたすべての変更の更新パッケージが作成され、理論的にはこれを Sitecore の新しいコピーにインストールできるようになります。

この更新パッケージをインストールすると、これがどこまで到達するかを確認できます。理論的には、古いバケット モジュールを使用していたセクションを新しい組み込みバケットを使用して再バケット化できます。

フロントエンド コードに関しては、検索にアクセスする古いアイテム バケット モジュールの方法は、Linq To Sitecore を使用するように完全に書き直されました。これで移行がより簡単になり、バケットがほぼ同じように機能することを願っています (うまくいけば、うまくいくと思います!)

Ruud のように、これを行うための他のテクニックについて聞きたいと思います。

余分な複雑さは、次のようなものから生じる可能性があります: 1) コア データベースをどれだけカスタマイズしたか 2) 作成した新しいフィールド タイプと XAML アプリケーションの数

于 2013-05-24T12:18:50.987 に答える
3

現時点では、これに対する適切な解決策はまだありません。

モジュールを積極的に使用している場合、現在アップグレードする方法はありません (私が知っていることではありません)。

モジュールをまったく使用していない場合は、Sitecore で ItemBuckets に関係するものをすべて削除できます。これは今のところ手作業です... (私は 6.5 環境でこれを成功させました)。

すべてを確実に削除するには、アイテム バケット インストール パッケージ (ZIP ファイル) を開いて、インストールされているアイテムを確認し、Sitecore からそれらすべてのアイテムを手動で削除します (これには、テンプレート、フィールド、フィールド タイプ、設定が含まれます)。

コンテンツ エディターの検索を使用して、「itembucket」または「itembucket」を検索し、その方法で関連アイテムを見つけることもできます。

もう 1 つの方法は、マスター データベースとコア データベースで直接 SQL を使用して検索することです。

バケットに関連する Sitecore と構成のすべてを削除したら、リンク データベースを再構築し、(コントロール パネルから) データベースのクリーンアップを実行します。

それは汚い仕事です.誰かがより良い方法を持っているなら、私はそれについて聞きたいです!

于 2013-05-24T11:15:25.880 に答える