2015-12-02 87 views
1

我創建了一個「企業模板」Liberty服務器,其中包含一個需要幾個SQLDB連接的EAR文件應用程序。這是可行的,我可以將cf推送到Bluemix環境。Bluemix Liberty SQLDB

我的問題是如何打包整個內容並在ONE動作中將其發佈到Bluemix(即,它們將具有在Liberty上運行的同一應用程序的實例,且具有相同的SQLDB表設置)。

從我對博客和Q &的快速瀏覽中,我只找到了關於提前創建SQLDB的文章,將Liberty運行時打包爲.zip文件,然後使用cf push到Bluemix。由於提前創建了SQLDB,所以數據庫連接將起作用。

那麼有沒有辦法將創建SQLDB的Liberty服務器作爲一個實體打包到一個「buildpack」中?如果是這樣,有人可以指導我涉及的步驟? (或文章/博客,任何東西都會有所幫助)

+0

您能更好地指定'將SQLDB創建作爲一個實體打包到Liberty服務器'的含義是什麼?你想打包服務內包推進?如果是這樣,這是不可能的,軟件包包含所有配置文件,源/編譯文件,庫,但根本沒有服務。這些服務由Bluemix服務提供。更多,SQLDB是DB2上的輕型版本 –

+0

好的,謝謝你的評論。我會更好地提煉我的問題。我現在創建了一個具有「cf」命令的bat/shell腳本,這些命令1)連接到bluemix 2)登錄到bluemix 3)創建sqldb 4)在剛剛創建的sqldb上運行DDL(如何操作)5)cf推包裝Liberty服務器(zip文件)6)cf綁定服務器到sqldb實例6)cf restage。問題在於步驟4),我如何在剛創建的sqldb上運行DDL。 –

+0

@OWOW似乎你的SQLDB和Liberty部署過程應該是分開的。每次你推送Liberty時,你是否總是需要重新創建SQLDB? –

回答

1

你不能這樣做。

如果你想創建一個腳本來一次完成所有的操作,一個想法是創建一個簡單的工作(例如在java中),你可以在腳本中啓動它。

應該執行這些步驟的工作:

  1. 連接到SQLDB - bluemix使用服務VCAP_SERVICES(此 步驟中,您可以看到文檔 https://www.ng.bluemix.net/docs/#services/SQLDB/index.html#SQLDB
  2. 運行DDL(創建表,...)在你的小任務
  3. 緊密結合
1

另一種選擇是打包數據庫遷移助手(SOM就像應用程序中的Flyway一樣。然後,您可以在應用程序啓動時使用Java調用它(我們對此模式的@singleton @startup EJB有很好的運氣)。遷移將在需要時運行,否則請保留數據庫。這種模式的另一個優點是您可以使用遷移來更新現有表格的表格(顧名思義)。

相關問題