2016-03-21 59 views
0

我是Magnolia CMS和Apache Jackrabbit內容存儲庫概念的新手。如何將Magnolia CMS Apache Jackrabbit內容存儲庫中的數據遷移到正常的SQL SERVER數據庫

有一個正在使用Magnolia CMS的Web應用程序。 Magnolia使用SQL SERVER 2012數據庫作爲持久性管理器。 這裏完成了Apache Jackrabbit內容存儲庫的實現。 Magnolia CMS有兩種獨立配置,用於應用程序,稱爲公共和作者實例。

現在我們試圖用一個定製的ASP.NET MVC 5應用程序替換現有的Magnolia CMS以及所有的功能。

我分析了SQL SERVER數據庫中的表,發現數據以Node_ID和Bundle_Data的格式存儲,這很難分析。 總之,這是不容易解釋。

基於自定義CMS,爲作者實例(SQL SERVER 2012)開發了一個新的數據庫模型。

因此,作爲遷移任務的一部分,我試圖將存儲在SQL服務器中的舊數據與Apache Jackrabbit內容存儲庫實現遷移到正常的SQL SERVER 2012(按照新的數據庫模型)。

任何人都可以幫助我知道是否有任何經過驗證的方法或工具可用於完成此任務。

回答

2

的問題更多的是對的長耳大野兔端,在玉蘭側沒有那麼多,特別是因爲你希望完全替代玉蘭,不只是持久層:

現在我們在這裏試圖取代現有的Magnolia CMS與 自定義ASP.NET MVC 5應用程序具有所有功能。

雖然我的問題真的是你是否真的希望完全替代兔崽子,或仍然使用兔崽子你的ASP.NET應用程序但有MS SQL Server的數據存儲(這將是我個人的建議)?否則,你會擺脫Jackrabbit擁有的所有好處。

Jackrabbit支持SQL Server,我會建議使用它。

https://wiki.apache.org/jackrabbit/DataStore#Configuration-1

目前支持的有:DB2,德比,H2,MSSQL,MySQL和甲骨文, SQLSERVER。

開發只用ASP.NET和SQL Server和沒有像發展中國家的一切聲音之間的內容存儲庫層,一個WebCMS通常從頭配有WebCMS,特別是如果你想擁有的所有功能,玉蘭報價(版本控制,歷史記錄,搜索等)。

您可以在這裏查看有關Jackrabbit數據存儲的詳細信息:http://wiki.apache.org/jackrabbit/DataStore雖然我想知道爲什麼您或您的客戶想要將內容存儲庫的數據存儲更改爲SQL Server。我想你並不是說使用MySQL來保存元數據,而是真的存儲二進制內容(這是一種錯誤,就像另一種基於Java的開源WebCMS OpenCms在他們的架構設計中所做的那樣 - imho)。

請注意,通常大文件不會存儲在數據庫本身(使用Magnolia)中,而是存儲在文件系統中。

https://wiki.magnolia-cms.com/display/WIKI/Setting+up+a+Jackrabbit+persistence+manager#SettingupaJackrabbitpersistencemanager-Datastorageandbackup

的BLOB是不被存儲在數據庫中,當他們超過你的兔崽子配置definied一個 一定的閾值默認 - 而不是 它們被保存在文件系統上。由Magnolia安裝的 使用的默認閾值爲1024個字節。超出定義的 閾值的所有文件都將放到文件系統中,而不是放在數據庫中。

如果你真的想要得到完全擺脫兔崽子,並且只使用SQL Server作爲持久層且不論大小(不推薦)的存儲中的所有二進制內容,我會寫一定製出口/導入腳本,它查詢Jackrabbit回購協議(標準CMIS協議)並從文件系統獲取內容,讀取爲FileInputStream並將其寫入Oracle DB(例如:http://www.java2s.com/Code/Java/Database-SQL-JDBC/StoreBLOBsdataintodatabase.htm)。這將是我建議的方法

我不認爲有任何開箱即用的工具

+0

感謝您的詳細信息。真的是幫助我繼續前進。 –

相關問題