Maven SQL插件执行顺序
Posted
技术标签:
【中文标题】Maven SQL插件执行顺序【英文标题】:Maven SQL plugin execution order 【发布时间】:2010-10-14 13:27:27 【问题描述】:我在订购 sql 执行时遇到了一些问题。
我们在一个目录下的每个表都有一个 sql 脚本文件。例如:目录 c:\SqlScripts 中有 user.sql 和 role.sql。我们正在使用 sql maven 插件来执行这些 sql 文件。
角色表有一个指向用户表的 Foriegn 键,执行失败,因为插件试图在 user.sql 之前执行 role.sql。我不能使用 orderfile 属性,因为我们指定为 c:\SqlScripts*.sql。
我该如何克服这个问题?
我看到了 2 个解决方案:
将所有脚本按创建顺序合并到一个文件中,创建角色的脚本在创建用户的脚本之后。
去掉*通配符,按执行顺序指定属性中的每个文件。
根据执行顺序对文件的名称进行编号,例如:1_user.sql、2_role.sql 并使用“升序” orderfile 属性(但不确定这是否可行,因为可能无法应用排序)
还有更优雅的解决方案吗?
【问题讨论】:
在配置 sql 插件时 POM 看起来如何? 您应该通过 srcFiles 定义文件,它将按照文件定义的顺序执行文件。 是的,但不幸的是我不能使用 orderfile 属性,因为我们指定为 c:\SqlScripts*.sql。
显然,这仅在您没有严格的订购要求时才有效。如果你这样做......
我该如何克服这个问题?
...使用允许以确定性方式处理排序的设置。
我看到了 3 个解决方案 (...)。还有更优雅的解决方案吗?
我认为你成功了。我的偏好是选项 3。
【讨论】:
我觉得最好的选择是按照我想要执行的顺序使用以上是关于Maven SQL插件执行顺序的主要内容,如果未能解决你的问题,请参考以下文章