Maven SQL插件执行顺序

时间:2010-10-14 13:27:28

标签: sql plugins maven-2 execution sql-maven-plugin

我在订购sql时面临一些问题。

我们在一个目录下为每个表都有一个sql脚本文件。例如:目录c:\ SqlScripts中有user.sql和role.sql。我们使用sql maven插件来执行这些sql文件。

角色表具有用户表的Foriegn键,并且执行失败,因为插件试图在user.sql之前执行role.sql。我不能使用orderfile属性,因为我们指定为c:\ SqlScripts * .sql。

我如何克服这个问题?

我看到了两个解决方案:

  1. 按创建顺序将所有脚本合并到一个文件中,创建角色的脚本位于创建用户的脚本之后。

  2. 删除*通配符,并按执行顺序指定属性中的每个文件。

  3. 根据执行顺序编号文件的名称ex:1_user.sql,2_role.sql并使用'升序'orderfile属性(不确定这是否可行,因为可能不会应用排序)

  4. 更优雅的解决方案?

1 个答案:

答案 0 :(得分:0)

  

我不能使用orderfile属性,因为我们指定为c:\ SqlScripts * .sql。

显然,这只有在您没有严格的订购要求时才有效。如果你这样做......

  

我如何克服这个问题?

...使用允许以确定的方式处理排序的设置。

  

我看到3个解决方案(...)。更优雅的解决方案?

我认为你钉了。我倾向于选项3。