2013-08-06 50 views
0

對於研究主題,我需要知道是否有人/公司使用Liquibase來管理「其他事物」而不是數據庫。executeCommand liquibase,相對路徑和用戶反饋

例如,從現有數據庫遷移某些數據。我們有幾個開發人員,每個開發人員都有一個數據庫供我們的本地機器測試。有時,我們需要更新數據庫中的所有數據,或者添加一些來自生產服務器的現有數據以運行一些測試。 現在,我們將它們提取到一個JAR中,然後我們手動運行這些JAR。我們希望通過在我們的XML中寫入一些命令來自動化這個動作。例如:

<changeSet id="2013-08-06_refactorProjectTable" author="morgan"> 
     <comment>A</comment> 
     <executeCommand executable="java"> 
      <arg value="-jar"/> 
      <arg value="/home/etiik/Bureau/SRMvision/integration-1.6-refactorProjectTable.jar"/> 
     </executeCommand> 
    </changeSet> 

我們問自己的問題是,如果有人已經這樣做了,並且它是否可行? 此外,我可能需要一些有關絕對路徑的幫助。正如我以前告訴過的,它在我們的本地機器上。所以它不是這樣的真正幫助。我想知道是否可以使用它作爲相對路徑。實際上,如果我嘗試以相同的方式嘗試執行時,它會在部署時失敗(當我在此executeCommand中運行pwd時,我發現我處於我的glassfish域的配置文件夾!)

感謝您的幫助! :) 最好的問候,

摩根

+0

我在幾個項目中使用liquibase,但從來沒有這樣做的需要或想法 - 我認爲這不是您需要的正確工具! –

回答

0

我想,如果很多人用這種方式使用Liquibase感到驚訝。理想情況下,您可以將上述任務構建到執行環境的不同部分。通過像Ant或Maven這樣的流行系統,您可以設置類似於每次運行諸如liquibase:update或liquibase:rollback等特定命令時都會運行的類似內容。

執行環境應設置當前目錄。在Maven中,它只會考慮來自其本地根目錄的文件,這非常有用,因爲您可以隨意混編代碼並以任何您想要的方式進行項目。缺點是liquibase maven插件有點無情。目前還不清楚是否有責任在於maven或插件,但這是要記住的。我花了一兩天的時間與它鬥爭。

大家知道,如果這對您的研究很有幫助,我在紐約市的中型創業公司工作。

+0

你爲什麼低調呢?這似乎是有用的建議? –

+1

你是對的! –

0

老問題,但在玩過之後,看起來您可以運行相對於liquibase jar文件的可執行文件,例如,

<changeSet id="OU" author="mathew"> 
     <executeCommand executable="{liquibase.jar dir}../bin/update-scripts/some.sh" /> 
    </changeSet>