我有一个支持多种数据库的应用程序,包括SQL * Server 2008,Oracle 10G,Oracle 11G,MYSQL 5等。已经在Maven中完成了三件事:如何使用Maven处理多个数据库模式创建脚本?
1)数据库,以便系统可以在构建期间将其用于集成测试。
2)的Maven调用Hibernate3的插件来自动生成使用就是hbm2ddl架构脚本。
3)哈德森矩阵构建设置,使集成测试是针对每一个数据库自动运行。
我已经注意到(没有惊奇),通过就是hbm2ddl创建的脚本取决于数据库方言是不同的。
然而,包装为客户提供系统的时候,我们需要手动进入各种哈德森建立,并从那里采摘数据库特定脚本。一个乏味的过程,我相信会在最糟糕的时刻咬我们!
反正是有,我们可以有Maven的自动生成,然后收集了所有这些数据库脚本,使他们能够沿着侧打包我们交付给客户WAR文件?我正在考虑Maven assembly插件将它压缩一切,但我不确定!
不知道这会有所帮助,但让我知道你的想法。 – 2010-10-06 17:50:58
想了一些之后,我认为使用Maven的数据库机制可能是错误的。这对于开发者机器来说非常简单和有用!但是对于CI构建机器...并不好。 – HDave 2010-10-06 18:22:50
@帕斯卡尔 - 我正在认真考虑放弃hbm2ddl并与Liquibase合作。随着项目的成熟,我将不得不提供不同版本之间的迁移路径。它看起来也是标签工具可以很好地处理集成测试数据的加载。我唯一的问题是让Maven liquibase插件在所有方言中生成SQL脚本...... – HDave 2010-10-06 21:28:01