Драйвер, о котором идет речь, — jt400.jar; Я скопировал его в каталог драйверов моей установки flyway. Это содержимое файла flyway.config в каталоге моего проекта:
flyway.locations=filesystem:.
flyway.url=jdbc:as400://192.168.1.1/myschema;naming=system;errors=full
flyway.user=myschema
flyway.password=***
Вызов flyway в каталоге моего проекта приводит к ошибке:
No database found to handle jdbc:as400://192.168.1.1/myschema;naming=system;errors=full
С помощью сетевых инструментов отладки я проверил, что он даже не пытался установить соединение с БД, поэтому проблема должна быть в драйвере.
Вызов flyway с опцией -X для получения более подробной информации об ошибке, я получаю следующее:
PS C:\Users\alex\Documents\myprj> flyway migrate -X
DEBUG: Loading config file: C:\Program Files\Red Gate\Flyway Desktop\flyway\conf\flyway.conf
DEBUG: Unable to load config file: C:\Users\alex\flyway.conf
DEBUG: Loading config file: C:\Users\alex\Documents\myprj\flyway.conf
DEBUG: Using configuration:
DEBUG: flyway.driver -> com.ibm.as400.access.AS400JDBCDriver
DEBUG: flyway.jarDirs -> C:\Program Files\Red Gate\Flyway Desktop\flyway\jars
DEBUG: flyway.locations -> filesystem:.
DEBUG: flyway.password -> ***
DEBUG: flyway.url -> jdbc:as400://192.168.1.1/myschema;naming=system;errors=full
DEBUG: flyway.user -> myschema
ERROR: Unexpected error
org.flywaydb.core.api.FlywayException: No database found to handle jdbc:as400://192.168.1.1/myschema;naming=system;errors=full
at org.flywaydb.core.internal.database.DatabaseTypeRegister.getDatabaseTypeForUrl(DatabaseTypeRegister.java:441)
at org.flywaydb.core.internal.jdbc.DriverDataSource.<init>(DriverDataSource.java:496)
at org.flywaydb.core.internal.jdbc.DriverDataSource.<init>(DriverDataSource.java:476)
at org.flywaydb.core.api.configuration.ClassicConfiguration.configure(ClassicConfiguration.java:2062)
at org.flywaydb.core.api.configuration.FluentConfiguration.configuration(FluentConfiguration.java:1341)
at org.flywaydb.commandline.Main.getLegacyConfiguration(Main.java:675)
at org.flywaydb.commandline.Main.main(Main.java:509)
Я попытался добавить явную ссылку на свой класс драйвера, добавив следующую строку в flyway.conf:
flyway.driver=com.ibm.as400.access.AS400JDBCDriver
Результат тот же.
В настоящее время вы не можете использовать flyway с i-серией (as400), так как для этой цели нет опубликованного кода. Flyway в текущих задокументированных версиях поддерживает только вариант Db2-LUW для Db2 (Linux/Unix/Windows).
Вы можете написать свой собственный модуль для поддержки серии i или заплатить другим за это.
К сожалению вроде точно в тему :-(