在我们的项目中,我们使用有些组合法:我们有计划的子文件夹中的一个核心为根,其他功能:
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