node.js - Sequelize 尝试查询删除的列

标签 node.js postgresql sequelize.js

我已经使用 sequelize 迁移从我的数据库中的模型中删除了一个列,即使迁移成功执行,sequelize 仍在尝试查询我的 Node.js 应用程序中的相同字段。

这是我试图执行的代码:

db.Alarm.all({ logging: console.log })
.catch(console.log)

这是查询日志输出的一部分( user_id 是删除的列):
Executing (default): SELECT "id", "driver_id", "dismissed_by", (...), "user_id"
FROM "alarms" AS "Alarm" WHERE "Alarm"."deleted_at" IS NULL;

这是捕获输出的一部分:
{ [SequelizeDatabaseError: column "user_id" does not exist]
name: 'SequelizeDatabaseError',
message: 'column "user_id" does not exist',
original:
 { [error: column "user_id" does not exist]
 name: 'error',
 length: 101,
 severity: 'ERROR',
 code: '42703',
 detail: undefined,
 hint: undefined,
 position: '257',
 internalPosition: undefined,
 internalQuery: undefined,
 where: undefined,
 schema: undefined,
 table: undefined,
 column: undefined,
 dataType: undefined,
 constraint: undefined,
 file: 'parse_relation.c',
 line: '3090',
 routine: 'errorMissingColumn',
 sql: 'SELECT "id", "driver_id", "dismissed_by", (...), "user_id" FROM "alarms" AS "Alarm" WHERE "Alarm"."deleted_at" IS NULL;' }

我已经从我的警报模型中删除了 user_id 字段和belongsTo(User) 关联。我的模型对用户的唯一引用是dismissed_by列,可以在上面的输出中看到。我还检查了 PostgreSQL 中的警报表,确实没有 user_id 列,所以我不知道发生了什么。

更新 :这个问题似乎只影响外键列。我已经能够成功地从模型中添加/删除/重命名其他列,但是在重命名列dismissed_by时遇到了同样的问题。

最佳答案

结果我错过了 User 模型中的 hasMany 关联(对于 user_id 列)。当我删除它时它运行良好=]

关于node.js - Sequelize 尝试查询删除的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41614577/

相关文章:

excel - 我想按原样导入 Excel 工作表(即列名与 excelsheet 相同)?

node.js - Sequelize : mapping between raw data and model

javascript - 如何检查 Sequelize 计数并在计数 > 0 时返回 bool 值

mysql - 如何在 Sequelize 中创建必填字段?

sql - Postgresql中根据条件获取上一条记录

mysql - NodeJS + ExpressJS 管理与 mysql 数据库连接的正确方法

node.js - 输入任何命令后使用 npm 命令

node.js - Node 的 fs.writeFile 不会覆盖以前的内容

sql - 在 PostgreSQL 中不可能在两个兄弟表之间映射表?

javascript - 如何在 NodeJS 中持续轮询 API 以获得特定结果?