2016-03-21 7 views
0

Magnolia CMSとApache Jackrabbitのコンテンツリポジトリの概念は初めてです。Magnolia CMS Apache Jackrabbitコンテンツリポジトリから通常のSQL SERVERデータベースにデータを移行する方法

Magnolia CMSを使用しているWebアプリケーションがあります。 MagnoliaはSQL Server 2012データベースを永続性マネージャとして使用しています。 Apache Jackrabbitコンテンツリポジトリの実装が完了しました。アプリケーションに使用されるMagnolia CMSには、パブリックインスタンスとオーサーインスタンスという2つの構成があります。

ここでは、既存のMagnolia CMSを、すべての機能を備えたカスタムASP.NET MVC 5アプリケーションに置き換えようとしています。

SQL SERVERデータベースのテーブルを分析したところ、Node_IDとBundle_Dataの形式で保存されたデータは分析が非常に難しいことがわかりました。つまり、解釈するのは容易ではありません。

カスタムCMSに基づいて、作成者インスタンス用の新しいデータベースモデル(SQL SERVER 2012)が開発されました。

移行タスクの一環として、Apache Jackrabbitコンテンツリポジトリ実装を使用してSQL Serverに格納されている古いデータを、新しいデータベースモデルごとに通常のSQL SERVER 2012に移行しようとしています。

このタスクを実行するための実証済みの方法やツールがありますか?

答えて

2

質問は、あなたが、完全ではないだけで永続化層をマグノリアを交換したい、特に以来、マグノリア側のあまりない、Jackrabbitの側の詳細です:

は今ここに、私たちは代わるしようとしていますすべての機能を備えた カスタムASP.NET MVC 5アプリケーションを備えた既存のMagnolia CMS。

私の質問は本当にあなたが本当に完全Jackrabbitのを置き換えるかどうかである、またははまだあなたのASP.NETアプリケーションではなく(私の個人的な提案だろう)MS SQL ServerのデータストアでJackrabbitのを使うのか?が、それ以外の場合は、Jackrabbitが持つすべての利点を取り除くことになります。

JackrabbitはSQL Serverをサポートしていますので、使用することをお勧めします。

https://wiki.apache.org/jackrabbit/DataStore#Configuration-1:現在サポートされている

は以下のとおりです。DB2、ダービー、H2、MSSQL、MySQLの、オラクル、 のSQLServer。あなたがそのマグノリアの提供するすべての機能を持つようにしたい場合は特に、ちょうどASP.NETとSQL ServerととWebCMSは通常、最初から付属していますすべてのものを開発するような音の間でのコンテンツリポジトリ層なしWebCMSの開発

(バージョン管理、履歴、検索など)。

ジャックラビットのデータストアに関する詳細は、http://wiki.apache.org/jackrabbit/DataStoreで確認できますが、なぜあなたまたはあなたの顧客がコンテンツリポジトリのデータストアをSQL Serverに変更するのか不思議です。私はあなたがメタデータの永続性のためにMySQLを使っているとは言いませんが、バイナリコンテンツを保存するのは実際のところです(OpenCmsのアーキテクチャ設計で作られた別のJavaベースのオープンソースのWebCMSである間違い - imho)。

通常、大きなファイルはデータベース自体(Magnolia付き)ではなく、ファイルシステムに保存されることに注意してください。

https://wiki.magnolia-cms.com/display/WIKI/Setting+up+a+Jackrabbit+persistence+manager#SettingupaJackrabbitpersistencemanager-Datastorageandbackup:彼らはあなたのJackrabbitの構成でdefinied 一定のしきい値を超えた場合

BLOBは、データベースに格納され、デフォルトではありません - その代わり これらはファイルシステムに保存されます。 Magnoliaインストールで使用されるデフォルトのしきい値は1024バイトです。定義された の上にあるすべてのファイルは、データベースではなくファイルシステムに置かれます。あなたが本当に完全Jackrabbitのを取り除きたいだけ永続化層としてSQL Serverを使用し、サイズに関係なくその中のすべてのバイナリコンテンツを保存する場合は

(推奨されません)、私は/ カスタム輸出を記述しますスクリプトを入力します。これは、Jackrabbitレポ(標準CMISプロトコル)を照会し、内容をファイルシステムから取り出し、FileInputStreamとし、Oracle DBに書き込みます(例:http://www.java2s.com/Code/Java/Database-SQL-JDBC/StoreBLOBsdataintodatabase.htm)。これは私の提案する方法でしょう。

これは、すぐに利用できるとは思わないツールです。

+0

ありがとうございます。本当にそれは私がさらに進歩するのを助けています。 –

関連する問題