【发布时间】:2011-02-19 09:26:53
【问题描述】:
我有一个使用单一数据库的企业应用程序,但该应用程序需要支持 mysql、oracle 和 sql*server 作为安装选项。
为了尝试保持可移植性,我们使用 JPA 注释 和 Hibernate 作为实现。我们还为每个用于开发的数据库提供了一个测试平台实例。
该应用程序在 Maven 中构建得很好,我已经使用过 hibernate3-maven-plugin 并且可以为给定的数据库方言自动生成 DDL。
解决此问题的最佳方法是什么,以便单个开发人员可以轻松地针对所有三个数据库进行测试,并且我们基于 Hudson 的 CI 服务器可以正确构建事物。
更具体地说:
我认为 hibernate3-maven-plugin 中的 hbm2ddl 目标只会生成一个模式文件,但显然它连接到一个实时数据库并尝试创建模式。有没有办法让这个只为每个数据库方言创建架构文件而不连接到数据库?
-
如果 hibernate3-maven-plugin 坚持实际创建数据库架构,有没有办法让它在创建架构之前删除数据库并重新创建它?
我认为每个开发人员(和 Hudson 构建机器)都应该在每个数据库服务器上拥有自己独立的数据库。这是典型的吗?
开发人员是否必须运行 Maven 三次...为每个数据库供应商运行一次?如果是这样,我如何在构建机器上合并结果?
在 hibernate3-maven-plugin 中有一个 hbm2doc 目标。运行 3 次似乎有点矫枉过正……我相信每个数据库的结果几乎相同。
【问题讨论】:
标签: hibernate3-maven-plugin hibernate maven-2 jpa build hbm2ddl