代码之家  ›  专栏  ›  技术社区  ›  Dave

如何使用maven处理多个数据库模式创建脚本?

  •  2
  • Dave  · 技术社区  · 14 年前

    我有一个正在开发的应用程序,它支持多个数据库,包括SQL*Server 2008、Oracle 10g、Oracle 11g、MySQL5等。在Maven中,我已经做了三件事:

    1)每个数据库都有一个概要文件,以便系统可以在构建期间使用它进行集成测试。

    2)maven调用hibernate3插件,使用hbm2ddl自动生成模式脚本。

    3)建立哈德逊矩阵构建,以便自动对每个数据库运行集成测试。

    我注意到(毫不奇怪)hbm2ddl创建的脚本根据数据库方言的不同而不同。

    但是,当为客户打包系统时,我们必须手动进入各种各样的Hudson构建并从中提取特定于数据库的脚本。一个冗长的过程,我肯定会在最糟糕的时刻咬我们!!

    我们是否可以让Maven自动生成并收集所有这些数据库脚本,以便将它们与我们发送给客户的战争文件一起打包?我想把Maven程序集插件全部压缩,但我不确定!

    1 回复  |  直到 14 年前
        1
  •  1
  •   Pascal Thivent    14 年前

    我们是否可以让Maven自动生成并收集所有这些数据库脚本,以便将它们与我们发送给客户的战争文件一起打包? 我想把Maven程序集插件全部压缩,但我不确定!

    问题是,脚本是为每个概要文件运行生成的(至少这是我的理解),除非您将它们打包到某种不同的工件中(可能是程序集),并在每次运行时安装/部署它们,否则在随后的步骤中,您将无法使用maven获取它们。

    另一种选择是有一个模块,其中包含 hbm2ddl 目标已定义。但我担心这会破坏整个形象。

    或者你可以用 M2 Extra Steps Plugin 依赖Hudson并在Maven构建中添加一些后期构建步骤(不确定这是否有帮助)。