我正试图定义一个基于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
而不是像hostname
和username
这样的单独字段来配置数据库连接?
在数据源配置JSON:中
"dsn": "DATABASE={dbname};HOSTNAME={hostname};UID={username};PWD={password};CurrentSchema=MY_SCHEMA"