在我们的项目中,我们使用了某种组合的方法:我们将程序的核心作为根目录,并在子文件夹中提供其他功能:
root/
plugins/
auth/
mail/
report/
等等
在所有这些文件夹中,我们同时拥有 DDL 和 DML 脚本,几乎所有这些脚本都可以多次运行,例如,所有包都定义为create or replace...
,所有数据插入脚本检查数据是否已经存在等等。这让我们有机会 rus 几乎所有的脚本,而无需考虑我们可能会崩溃。
显然这种情况不能适用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
希望这些信息对您有所帮助。如果您有任何问题,请留下评论。