Flyway Исключение для недопустимых символов в версии - PullRequest
0 голосов
/ 23 мая 2018

Я пытаюсь интегрировать Flyway с моим простым проектом maven в учебных целях.

Я использую следующий плагин и конфигурацию:

            <plugin>
                <groupId>org.flywaydb</groupId>
                <artifactId>flyway-maven-plugin</artifactId>
                <version>4.0.3</version>
                <dependencies>
                    <dependency>
                        <groupId>mysql</groupId>
                        <artifactId>mysql-connector-java</artifactId>
                        <version>5.1.9</version>
                    </dependency>
                </dependencies>
                <configuration>
                    <url>jdbc:mysql://${database.host}:${database.port}/${database.schema}?useUnicode=true&amp;characterEncoding=UTF-8&amp;characterSetResults=UTF-8</url>
                    <user>${database.user}</user>
                    <password>${database.password}</password>
                    <sqlMigrationPrefix>V_</sqlMigrationPrefix>
                    <sqlMigrationSeparator>__</sqlMigrationSeparator>
                    <locations>
                        <location>filesystem:src/main/resources/db/migrations</location>
                    </locations>
                </configuration>
            </plugin>

И это имя моего примера миграции sql:

V_1__create_new_table.sql

Я не уверен, что яя делаю неправильно, но получаю следующее исключение:

org.flywaydb.core.api.FlywayException: Invalid version containing non-numeric characters. Only 0..9 and . are allowed. Invalid version: V.1

Я ссылался на следующий вопрос, и, как вы можете видеть в конфигурации, я сделал то, что было задано: Аналогичный вопрос

1 Ответ

0 голосов
/ 23 мая 2018

Вы можете просто попытаться определить только V в качестве префикса миграции и назвать файл миграции V1__Create_New_Table.sql (это значения по умолчанию Flyway).

То, как вы определили V_ в качестве префикса и V_1__Create_New_Table.sql, поскольку имя файла является причиной проблемы, потому что это говорит Flyway, что эта миграция имеет версию V.1, что, конечно, неверно.

Для меньшего количества версий вы можете пойти на что-то вродеэто: V1_1__Create_New_Table.sql, что даст вам миграционную версию 1.1, например.

В соответствующем ответе SO, который вы предоставили, предлагается использовать V_ в качестве префикса и _ в качестверазделитель, в то время как вы определили в конфигурации вашего плагина __ как разделитель плагинов.

...