环回(DB2)-无法创建使用userid以外的模式的PersistedModel实例



我正试图定义一个基于PersistedModel的模型来访问DB2中的表,称之为MY_SCHEMA.MY_TABLE

我创建了基于PersistedModel的模型MY_TABLE,该模型具有数据源(datasources.json(,其中的定义包括属性"schema": "MY_SCHEMA"。数据源还包含用于连接的用户IDmy_userid

当前行为

当我尝试为此模型调用API时,它会尝试访问表my_userid.MY_TABLE

预期行为

它应该访问MY_SCHEMA.MY_TABLE

DB2实例恰好位于System Z上。我创建了一个名为my_userid.MY_TABLE的表,这将起作用,但对于我们正在尝试构建的解决方案,需要多个模式。

请注意,这似乎只是System Z上的Db2的问题。我可以更改Db2 LUW上的模式。

您使用的是什么LoopBack连接器?什么版本?您还可以检查一下您的node_modules文件夹中安装了什么版本的loopback-ibmdb吗?

AFAICT,LoopBack的DB2相关连接器支持schema字段,请参阅https://github.com/strongloop/loopback-ibmdb/blob/master/lib/ibmdb.js#L96-L100

self.schema = this.username;
if (settings.schema) {
self.schema = settings.schema.toUpperCase();
}
self.connStr += ';CurrentSchema=' + self.schema;

您是否考虑过使用DSN而不是像hostnameusername这样的单独字段来配置数据库连接?

在数据源配置JSON:中

"dsn": "DATABASE={dbname};HOSTNAME={hostname};UID={username};PWD={password};CurrentSchema=MY_SCHEMA"

最新更新