Db2 有没有办法在AS400上使用Flyway?

Db2 有没有办法在AS400上使用Flyway?,db2,ibm-midrange,flyway,Db2,Ibm Midrange,Flyway,我需要实现像Flyway这样的迁移工具,以便使用Jenkins部署数据库更改。 我尝试添加jt400.jar文件,并添加了如下配置: flyway.url=jdbc:as400://192.168.171.251:446/DBDEV flyway.driver=com.ibm.as400.access.AS400JDBCDriver 作为驱动程序,它将不会连接到此消息: ERROR: No database found to handle jdbc:as400://192.168.171.25

我需要实现像Flyway这样的迁移工具,以便使用Jenkins部署数据库更改。 我尝试添加jt400.jar文件,并添加了如下配置:

flyway.url=jdbc:as400://192.168.171.251:446/DBDEV
flyway.driver=com.ibm.as400.access.AS400JDBCDriver
作为驱动程序,它将不会连接到此消息:

ERROR: No database found to handle jdbc:as400://192.168.171.251:446/DBDEV
我还尝试使用IBMDB2驱动程序,并进行了配置

flyway.url=jdbc:db2://192.168.171.251:50000/DBDEV
flyway.driver=com.ibm.db2.jcc.DB2Driver
这一次我收到了这种拒绝的信息

ERROR: 
Unable to obtain connection from database (jdbc:db2://192.168.171.251:50000/DBDEV) for user 'DEVUSER': 
[jcc][t4][2043][11550][4.26.14] Exception java.net.ConnectException: Error opening socket to server
 /192.168.171.251 on port 50,000 with message: Connection refused (Connection refused). 
ERRORCODE=-4499, SQLSTATE=08001
通过这次测试迁移,我试图通过执行这个sql创建一个简单的表

createtableperson(
ID INT不为空,
名称VARCHAR(100)不为空
);

有人遇到过这种情况并解决了它吗?

您确定ibmi上的Db2数据库的名称是
DBDEV

使用绿色屏幕上的WorkwithRDB目录条目(WRKRDBDIRE),并查找*LOCAL条目

或者使用Access Client Solutions(ACS)“Schemas”工具查看系统上的数据库列表。


上面显示了2 DB、
UT29p63
Dbtest
我认为目前不支持flyway与IBM I(as/400)一起工作,无论您使用的是jt400.jar还是IBM jdbc驱动程序

您可以使用不同的数据库模式版本控制工具,或者找到一个支持i系列的flyway分支(或者花钱让人创建并支持这样的分支,它是开源的…)

目前(
flyway 7.7.2
)似乎没有将以
“jdbc:as400:
开头的URL识别为Db2 URL,因此它引发异常,这就是异常拒绝
jt400.jar
样式URL的原因:

“找不到要处理的数据库…”

github的历史记录讲述了一个故事(请参阅:)

由于缺乏合适的i系列测试/开发环境(travis ci也可以使用),开发人员似乎未能成功添加AS400支持。在过去,可能至少有一个这样的支持公关,虽然它似乎被删除

如果您尝试使用IBM db2jcc4.jar驱动程序连接到具有类似以下url的i系列(as400):
jdbc:db2://hostname/dbname
,并且显式使用IBM jre,并拥有相关的许可证文件(例如类路径上的db2jcc_license_cisuz.jar),那么flyway将连接并报告类似以下内容的异常:

不支持的数据库:AS 7.4


flyway源代码显示flyway无法识别当前flyway 7.7.2版本的数据库产品名称和版本。

@mao感谢您的建议。我尝试在驱动程序和url配置上同时使用端口446和50000,但没有成功,尽管如此,as400在使用DBClient(如dbeaverthankyou)时工作得很好。我检查了一下,发现IBM iAccess是唯一的数据库。try
flyway.url=jdbc:as400://192.168.171.251;Database=DBDEV
我认为您不需要该端口。