2010-10-14 92 views
0

我在訂購sql執行時遇到了一些問題。Maven SQL插件執行順序

我們在一個目錄下爲每個表有一個sql腳本文件。例如:目錄c:\ SqlScripts中有user.sql和role.sql。我們正在使用sql maven插件來執行這些sql文件。

角色表對用戶表具有Foriegn鍵,執行失敗,因爲插件試圖在user.sql之前執行role.sql。我們不能使用orderfile屬性,因爲我們將它指定爲c:\ SqlScripts * .sql。

我該如何解決這個問題?

我看到2個解決方案:

  1. 合併所有腳本到創建順序一個文件,腳本創建角色自帶的腳本後創建的用戶。

  2. 刪除*通配符並按執行順序指定屬性中的每個文件。

  3. 根據執行順序ex:1_user.sql,2_role.sql編號文件的名稱並使用'ascending'orderfile屬性(不確定這是否可行,但可能不適用)

任何更優雅的解決方案?

+1

POM如何配置sql插件? – khmarbaise 2010-10-14 14:03:39

+0

您應該通過srcFiles定義文件,這些文件將按照它們定義的順序執行文件。 – khmarbaise 2010-10-14 14:06:33

+0

是的,但不幸的是不採用通配符:(意識到任何解決方法? – Julia 2010-10-19 06:28:24

回答

0

我不能使用orderfile屬性,因爲我們指定爲c:\ SqlScripts * .sql。

顯然,這隻有在您沒有嚴格的訂購要求時纔有效。如果你這樣做...

我該如何克服這個問題?

...使用允許以確定性方式處理排序的設置。

我看到3個解決方案(...)。更優雅的解決方案?

我想你釘了。我偏好選項3.

+0

我覺得最好的選擇是使用與我想執行的順序,但不幸的是,如上所述,它不接受通配符。 – Julia 2010-10-19 06:31:19