在我們的項目中,我們使用有些組合法:我們有計劃的子文件夾中的一個核心爲根,其他功能:
root/
plugins/
auth/
mail/
report/
等
在所有這些文件夾,我們有兩個DDL和DML腳本幾乎所有這些腳本都可以運行一次,例如所有包都定義爲create or replace...
,所有數據插入腳本都會檢查數據是否已經存在等等。這讓我們有機會幾乎所有的腳本都沒有想到我們會崩潰。
顯然,這種情況不能應用於create table
和類似的聲明。對於這些腳本,我們手動編寫了一個小型bash腳本,用於提取指定的文件,並在特定的ORA錯誤時運行它們,例如:ORA-00955: name is already used by an existing object
。
而且所有文件都混在了目錄,但與擴展不同:.seq
無二序列,.tbl
無二表,.pkg
無二封裝接口,.bdy
無二封裝體,.trg
去觸發的等等...
另外,我們有一個命名約定,表示我們的所有文件的前綴:我們可以cl_oper.tbl
表cl_oper.seq
和cl_oper.trg
序列和觸發器和cl_oper_processing.pkg
連同cl_oper_processing.bdy
與提及的目的邏輯。在文件管理器中使用這種命名約定,可以很容易地看到與我們的項目的某些邏輯單元相關的所有文件(而按目標類型在目錄中分組時不提供此功能)。
希望這些信息能以某種方式幫助你。如果您有任何問題,請留下評論。
你可以看看liquibase http://www.liquibase.org/tutorial-using-oracle採取的方法 – crowne 2011-12-06 15:38:21