我正在运行PostgreSQL 11,并尝试使用Sequelize更新其表项之一。
我的NodeJS代码:
require('env2')('.env');
const Sequelize = require('sequelize');
const sequelize=new Sequelize(process.env.database,process.env.username,process.env.password,{
dialect:'postgres'
});
const Agent=sequelize.define('agent');
updateValues={available:false};
Agent.update(updateValues,{where:{phonenumber:'+18005551212'}}).then(result=>{console.log(result)});
表agent
具有以下结构:
id primary key serial,
phonenumber varchar(100),
available boolean
运行NodeJS代码时,出现此错误:
Executing (default): UPDATE "agents" SET "updatedAt"='2018-12-27 10:16:54.504 +0
0:00' WHERE "phonenumber" = '+18005551212'
Unhandled rejection SequelizeDatabaseError: relation "agents" does not exist
为什么此更新失败?当我在sequelize.define(agent)
中将表名提供为“ agent”时,我不明白为什么该错误在谈论关系“ agents”。
当我按如下方式使用原始SQL时,更新成功:
sequelize.query("update agent set available=false where phonenumber='+18005551212'").then(result=>{
console.log(result);
});