sequelizejs upsert throw SequelizeDatabaseError:语法错误在或接近“,”

我正在使用postgres sequelizejs upsert,请在下面find我的代码。

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) } }); } }) } 

这段代码抛出exception

 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) 

我究竟做错了什么? 此外,我无法findupsert的完整示例,我将不胜感激如果任何人提供了一个upsert的例子。

续集日志

执行(默认):CREATE OR REPLACE FUNCTION pg_temp.sequelize_upsert()返回整数AS $ func $ BEGIN INSERT INTO“kbank”。“transcriptions”(“asset_id”,“tenant_url”,“file_name”,“uri”,“payload” ,'state','duration','guid','created_at','updated_at')VALUES('5','abcd','file_name','uri','RECEIVED_FROM_Q',0,'',' 2015-09-10 10:16:00.226 +00:00','2015-09-10 10:16:00.226 +00:00'); 返回1; 例如unique_violation THEN UPDATE“kbank”“transcriptions”SET“asset_id”='5','tenant_url'='abcd','file_name'='file_name','uri'='uri','payload'=, “state”='RECEIVED_FROM_Q',“duration”= 0,“guid”=“',updated_at”='2015-09-10 10:16:00.226 +00:00'; 返回2; 结束; $ func $ LANGUAGE plpgsql; SELECT * FROM pg_temp.sequelize_upsert();