簡體   English   中英

Oracle和Subversion的集成

[英]Integration of Oracle and Subversion

我正在管理一個基於java,subversion和svn的基於Web的項目,有8個開發人員。 不幸的是,修改數據庫更改是項目的一個大問題。 在我們的例子中,每個用戶都可以更新表並忘記將更改腳本放在svn中。 因此,由於未更新的表或視圖,我們需要花費大量時間來查看和調試引發的問題。

所以,我想知道,是否有任何方法,工具或插件可供oracle 11g將所有數據庫更改保存為某些地方的腳本,例如在svn上?

編輯1:從整個數據庫獲取轉儲並不能解決我的問題,因為在真實環境中我無法丟棄客戶數據並返回到新的轉儲。

我認為這正是你所需要的。 一個開源數據庫變更管理系統。 Liquibase。 http://www.liquibase.org/

不要存儲更改腳本,只存儲刪除並重新創建所有對象的腳本。 開發人員應該在本地實例上更改和運行這些腳本,運行自動單元測試,然后簽入他們的更改。

從頭開始重建那么多比不斷磨合修改腳本,更好。 在每個人都可以輕松地從頭開始重建整個系統之前,您永遠無法控制您的應用程序。

(我假設您正在詢問有關主干上的開發,您需要進行大量更改。對於主要升級,例如從1.1版遷移到1.2版,您仍然需要使用更改腳本來幫助保留數據。)

比Liquibase更便宜和更糟的解決方案,根據Oracle:只導出模式主題,可以是post-commit hook,其中

  • expdp ... DUMPFILE=file.dmp CONTENT=METADATA_ONLY進入dir,這是WC或存儲庫中的特殊位置
  • 提交此文件.dmp

維護數據庫更改有兩個方面。 正如您所提到的,其中之一是腳本形式,可以應用於舊架構進行升級。 但是,這是答案的一部分,因為開發人員很難查看腳本,解析腳本,並弄清楚最近的架構更改可能會如何影響他們的工作。

因此,除了更改腳本之外,我還建議您在文本文件中檢入人類可讀的數據庫元數據版本。 SchemaCrawler是為此目的而設計的一種免費工具,它以一種旨在進行差異化的格式生成豐富的元數據信息。 我發現,如果您將數據庫元數據隨時間變化,則可以使其成為可自動檢查模式元數據的夜間過程。

請嘗試使用此工具: www.dbapply.com

它具有用於從Subversion存儲庫手動部署腳本的GUI和用於持續集成的命令行界面。

支持Subversion分支。

可以在Windows和Linux上運行(您需要JRE 8)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM