Node.js sequelizejs upsert throw SequelizeDatabaseError:位于或接近“0”的语法错误&引用;
我正在postgres中使用sequelizejs upsert,请在下面找到我的代码Node.js sequelizejs upsert throw SequelizeDatabaseError:位于或接近“0”的语法错误&引用;,node.js,postgresql,sequelize.js,Node.js,Postgresql,Sequelize.js,我正在postgres中使用sequelizejs upsert,请在下面找到我的代码 var upsertTranscript = function(tenant_url, dbHash, cb) { orm.getTenantDB(tenant_url, function(err, db) { if(err) { logger.warn("Error while getting the tenant db for URL : ", tenant_url);
var upsertTranscript = function(tenant_url, dbHash, cb) {
orm.getTenantDB(tenant_url, function(err, db) {
if(err) {
logger.warn("Error while getting the tenant db for URL : ", tenant_url);
cb(err, null);
} else {
console.log("transcript_schema_path: ", transcript_schema_path)
logger.debug("Created DB object for tenant : ", tenant_url)
var transcript = orm.import(db, transcript_schema_path);
var hash = {
asset_id: dbHash.assetId,
tenant_url: dbHash.tenant_url,
file_name: dbHash.file_name,
uri: dbHash.uri,
state: dbHash.state,
payload: dbHash.payload || {},
duration: dbHash.duration || 0,
guid: dbHash.guid || ""
};
console.log("Trying to upsert : ", hash)
transcript.upsert(hash, {logging: true}).spread(function(t) {
if(t) {
logger.info("Transcript creation success for tenant : " + dbHash.tenant_url)
cb(null, t)
} else {
logger.warn("Transcript creation failure for tenant : " + dbHash.tenant_url)
cb(new Error("Transcript creation failure for tenant : " + dbHash.tenant_url), null)
}
});
}
})
}
此代码引发异常
未处理的拒绝SequelizeDatabaseError:语法错误位于或接近“,”
at Query.formatError(/vagrant/boxer/node_modules/kaybus utils/node_modules/sequelize/lib/dialogs/postgres/Query.js:433:14)
在空。(/vagrant/boxer/node_modules/kaybus-utils/node_modules/sequelize/lib/dialogs/postgres/query.js:108:19)
在EventEmitter.emit(events.js:95:17)
在Query.handleError(/vagrant/boxer/node_modules/kaybus utils/node_modules/pg/lib/Query.js:108:8)
我做错了什么?
此外,我找不到upsert的完整示例,如果有人也为我提供upsert示例,我将不胜感激
续集日志
执行(默认):创建或替换函数pg_temp.sequelize_upsert()将整数返回为$func$BEGIN INSERT到“kbank”。“transcriptions”(“资产id”、“租户url”、“文件名”、“uri”、“有效负载”、“状态”、“持续时间”、“guid”、“创建时间”、“更新时间”)值('5'、'abcd'、'file_name'、'uri'、'RECEIVED_FROM_Q',0'、'2015-09-10 10:16:00.226+00:00'、'2015-09-10:16:00.226+00:00');返回1;唯一违反时出现异常,然后更新“kbank”。“抄录”设置“资产id='5'、“租户url='abcd'、“文件名='file_name'、“uri='uri'、“有效载荷”、“state=“RECEIVED_FROM”、“duration=”guid=“duration”、“duration”、“duration=”更新时间”='2015-09-10 10:16:00.226+00:00';返回2;结束;$func$LANGUAGE plpgsql;从pg_temp.sequelize_upsert()中选择*是否可以发布sequelize(sql查询)的日志?我不知道sequelizejs的任何内容,但是在PostrgreSQL 9.5中引入了本机
upsert
支持,目前在Alpha 2中。
Unhandled rejection SequelizeDatabaseError: syntax error at or near ","
at Query.formatError (/vagrant/boxer/node_modules/kaybus-utils/node_modules/sequelize/lib/dialects/postgres/query.js:433:14)
at null.<anonymous> (/vagrant/boxer/node_modules/kaybus-utils/node_modules/sequelize/lib/dialects/postgres/query.js:108:19)
at EventEmitter.emit (events.js:95:17)
at Query.handleError (/vagrant/boxer/node_modules/kaybus-utils/node_modules/pg/lib/query.js:108:8)