我正在开发一个新的 Oracle ADF 项目,该项目使用 Oragle 10g 数据库,并且我在我们的项目中使用 Unitils 和 DBMaintainer 用于:
- 更新数据库结构
- 单元测试
- 读入种子数据
- 读入测试数据
- 项目清单
在我们的项目中,我们有 2 个模式和 2 个具有连接这些模式的权限的 db 用户。我将它们放在具有递增名称的文件夹结构中,并且我使用@convention 进行脚本命名。
001_@schemaA_name.sql
002_@schemaB_name.sql
003_@schemaA_name.sql
这适用于 ant 和 DBMaintainer 更新任务,我通过为 ant 任务配置额外元素来提供多个用户名。
<target name="create" depends="users-drop, users-create" description="This tasks ... ">
<updateDatabase scriptLocations="${dbscript.maintainer.dir}" autoCreateDbMaintainScriptsTable="true">
<database name="${db.user.dans}" driverClassName="${driver}" userName="${db.user.dans}" password="${db.user.dans.pwd}" url="${db.url.full}" schemaNames="${db.user.dans}" />
<database name="idp" driverClassName="${driver}" userName="${db.user.idp}"
password="${db.user.idp.pwd}" url="${db.url.full}" schemaNames="${db.user.idp}" />
</updateDatabase>
</target>
但是,我想不通,如何让 DBMaintainer 更新任务从我的数据库模式创建 xsd 模式?
所以,我决定使用 Unitils,因为它的更新创建了 xsd 模式。我还没有找到 Unitils ant 任务的任何描述或文档 - 任何人都可以提供一些提示吗?目前我已经想出通过创建一个带有 @Dataset 注释的 Junit 测试来运行 Unitils。我可以让它与一个模式和一个数据库用户一起工作。但是我不知道如何使它与多个用户一起使用?
这是我拥有的 unitils-local.properties 设置:
database.url=jdbc\:oracle\:thin\:@localhost\:1521\:vipu
database.schemaNames=a,b
database.userName=a
database.password=a1
你们中的任何人都可以给我一个提示,如何使 Unitils 与第二个用户/模式一起工作?我将非常感谢您的帮助!