我正在开发一个使用Nodejs和PostgreSQL-db的项目。
我已经为数据库创建了一个schema和一些表,现在我创建了一个包含预先准备好的数据(多行)的文件以便插入。我根据这篇文章的说明进行操作:Multi-row insert with pg-promise。
问题是,我遇到了以下错误:{ error: relation "tenantx.ObjectGroup" does not exist ...但是它确实存在。当我想读取表格内容时,从我的api中可以看到它是空对象。 这个错误是否由于“schema.table”声明引起的?
预先准备好数据的代码如下:
问题是,我遇到了以下错误:{ error: relation "tenantx.ObjectGroup" does not exist ...但是它确实存在。当我想读取表格内容时,从我的api中可以看到它是空对象。 这个错误是否由于“schema.table”声明引起的?
预先准备好数据的代码如下:
'use strict';
const pgp = require('pg-promise')({
// Initialization Options
});
const csObjectGroup = new pgp.helpers.ColumnSet(['objectgroup', 'description'], {
table: 'tenantx.ObjectGroup'
});
// data input values:
const valuesObjectGroup = [{
objectgroup: 'bla',
description: 'bla'
}, {
objectgroup: 'blu',
description: 'blu'
}, {
objectgroup: 'bla',
description: 'bla'
}];
module.exports = {
csObjectGroup: csObjectGroup,
valuesObjectGroup: valuesObjectGroup
}
被从API调用来设置内容的代码: //将准备好的数据插入表格中
function initializeData(pTenantId, dbUri) {
var dbPostgres = dbUri;
const datafile = require("./../Data/data_" + pTenantId);
var statements = [];
var valuesObjectGroup = datafile.valuesObjectGroup;
var csObjectGroup = datafile.csObjectGroup;
statements.push(valuesObjectGroup, csObjectGroup);
var i, query;
for (i = 0; i < statements.length - 1; i += 2) {
query = pgp.helpers.insert(statements[i], statements[i + 1]);
dbPostgres.none(query)
.then(data => {
console.log("+++++ Data successfully initialized.");
})
.catch(err => {
console.log("----- Data could not be initialized.");
console.log(err);
});
}
return true;
}
我从以下内容创建了表格:
const createObjectGroupTable =
'CREATE TABLE IF NOT EXISTS tenantx.ObjectGroup \
( \
id serial, \
objectgroup varchar(50), \
description varchar(100), \
PRIMARY KEY (id) \
)';
***** "tenantx"。"ObjectGroup" ----- 数据无法初始化。 { error: 关系“tenantx.ObjectGroup”不存在[...]
- Galadriel***** ColumnSet { table: "tenantx"."ObjectGroup" columns: [ Column { name: "objectgroup" } Column { name: "description" } ] } ----- 数据无法初始化。 { error: 关系“tenantx.Object”不存在
- Galadrieltenantx.ObjectGroup
,现在是tenantx.Object
。我不知道你到底做了什么,因为我不能看到代码,但你那边似乎出了点问题。我给你的解决方案应该能够恰好修复你展示的错误。 - vitaly-t