2012-04-08 160 views
5

我們已經開始使用marklogic來存儲文檔的新項目。爲了讓應用程序運行,我們需要創建一個數據庫,一個林,新用戶並設置一個XDBC服務器。使用Marklogic提供的網絡管理工具很容易,但要從一個持續集成服務器運行它,我們需要將它自動化。有沒有辦法從命令行執行它(如sqlcmd.exe for sqlserver或oracle中的sql plus)?如何通過腳本在marklogic中創建數據庫

回答

5

只要您使用MarkLogic 5.x,最簡單的事情就是使用配置管理器。此基於Web的工具允許您將整個數據庫和應用程序服務器配置導出到可以受版本控制的單個xml文件。它也可以導入完成設置或重新配置您的MarkLogic實例。

爲了將其用作持續集成的一部分,您必須腳本導入配置。您可以創建一個http服務器,該服務器具有一個調用配置API進行加載的端點,如文檔所示:http://community.marklogic.com/pubs/5.0/apidocs/package-api.html。這種基於https的服務可以很容易地通過ANT或任何其他CI工具調用。

另外,特別是如果您還沒有運行在5.x上,您可以腳本化整個過程而不是使用配置包。所有的管理任務都記錄在這裏: http://community.marklogic.com/pubs/5.0/books/adminAPI.pdf。然後您必須編寫配置數據庫,應用程序服務器等所需的所有代碼,然後通過上述的http服務器公開它。

+0

感謝您的鏈接。我們正在使用5.x.首先,我嘗試將應用程序服務器導入到xml中,並獲得了一個xml包。下一步是實際安裝軟件包。我使用了package:install(fn:doc(「/ xdbcserver.xml」)).....問題是具有uri /xdbcserver.xml的文件應該存在於數據庫中。這意味着有人必須手動將其放置在那裏。這與自動化配置的目的有點矛盾。我想要一個從客戶端文件系統加載包的函數,而不是DB中的現有文件。任何提示?再次感謝 – uttamkini 2012-04-09 19:07:49

1

感謝Clark Richey的幫助,我可能已經找到了一種自動配置MarkLogic服務器5.x的方法(儘管絕不是直截了當的)。

例如,如果你想(自動執行xdbc服務器的創建, 去一個實例的查詢控制檯,手動配置xdbc服務器exists.Use下面的XQuery生成的xdbc服務器軟件包文件在我大小寫稱爲sample-server)。

導入模塊名稱空間package =「http://marklogic.com/package/package」at「/MarkLogic/package/package.xqy」;

讓$我的包:=包:創建()

返回包:附加應用程序服務器($我的包, 「默認」, 「樣本服務器」)

你會現在可以看到一個包xml,其中包含創建和配置xdbc服務器所需的所有信息。將其保存在文件或剪貼板上。現在轉到您要配置的marklogic實例的查詢控制檯。使用以下xquery將其實際安裝在實例上。

導入模塊名稱空間package =「http://marklogic.com/package/package」at「/MarkLogic/package/package.xqy」;

設$包:= {貼上您在文件保存該包的XML /剪貼板第一步}

返回包:安裝($包)

現在,您將一個獲取XML結果它說該軟件包已被寫入。

現在在CI環境中實現自動化的所有重要步驟。我會寫一個自定義的ant/nant任務(或者在我的具體情況下是一個powershell cmdlet),它從文件系統讀取配置文件,使用XCC連接到ML(以及管理員憑據,因爲像創建數據庫和應用服務器這樣的東西需要它)然後執行上面定義的相同的xquery。然後,我可以在我的源代碼控制中版本控制配置文件,這樣我就可以自動完成新安裝的ML上數據庫的創建/配置,而無需任何手動干預。還有其他更好的方法嗎?

+0

所以,你知道,在github上有一套針對MarkLogic的ant taks http:// developer .marklogic.com/code/ant-tasks – derickson 2012-04-11 01:27:11

+3

配置管理應用程序還提供了打包REST接口。有一個用於發佈安裝包的網址。更多詳細信息,請訪問:http://community.marklogic.com/pubs/5.0/apidocs/packageREST.html – grtjn 2012-04-12 05:51:17