2017-08-30 74 views
1

我試圖把在版本控制與遷飛, 和我的數據庫我想把劇本的每一道工序,功能表等在分開的文件和子文件夾,像這樣:如何分隔Flyway中不同文件中的每個腳本?

enter image description here

,但我得到這個錯誤:

org.flywaydb.core.api.FlywayException: Found more than one migration with version 1.0 
Offenders: 
-> C:\...\target\classes\db\migration\views\asuntoConsultar\V1.0__asuntoConsultar.sql (SQL) 
-> C:\...\target\classes\db\migration\tables\asuntos\V1.0__asuntos.sql (SQL) 

有配置遷徙路線,瞭解這種結構的方法嗎?

回答

1

Flyway可以使用這個目錄結構。您需要確保腳本的版本號在所有目錄中都是唯一的。這是因爲Flyway搜索所有腳本的位置參數,然後根據版本號確定運行它們的順序。打開調試運行可以幫助你看到如何運作。

您可能還需要調查OutOfOrder選項,以便您不必跟蹤跨文件夾的版本號碼。

+0

@AlfredoM讓我在這裏強調一點,就是濫用Flyway的版本編號系統。 *名稱中必須包含'V1.0__'的多個文件(默認情況下)。 **默認情況下,嵌套文件夾與Flyway無關。 Flyway所做的第一件事是收集所有可能出現的位置中的所有腳本,包括嵌套文件夾中的腳本。其次,Flyway分析每個文件的名稱,以創建軟件行業常用的* major.minor.micro.nano *風格的數字。默認情況下,該版本號決定腳本的執行順序。 –

+0

@BasilBourque,只要文件版本號是唯一的,原始海報就可以使用他們的文件夾結構。 –

+0

呃,是的 - 那是我想強調的一點。原始的海報正在考慮文件夾層次結構的意義。你和我都試圖重新定位這個想法,以便專注於版本號而不是文件夾**。 –

相關問題