2017-08-30 280 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

呃,是的 - 那是我想强调的一点。原始的海报正在考虑文件夹层次结构的意义。你和我都试图重新定位这个想法,以便专注于版本号而不是文件夹**。 –

相关问题