You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Sequelize如何在数据表创建后获取对应模型的实际数据库字段

解决方法

Model.rawAttributes只会读取代码中sequelize.define定义的字段配置,不会同步数据库侧的实际变更(比如手动新增的字段、迁移脚本更新但未同步到模型定义的字段),要获取真实的数据库表字段,直接调用Sequelize实例内置的describeTable方法即可,该方法会直接发起数据库查询拉取对应表的真实结构:

// 方式1:直接传入表名查询
const tableFields = await sequelize.getQueryInterface().describeTable('你的表名');

// 方式2:通过模型实例自动取对应表名查询
const tableFields = await sequelize.getQueryInterface().describeTable(你的模型类.tableName);
  • 返回结果为对象格式,键是字段名称,值包含字段类型、是否允许为空、是否主键、默认值等完整属性
  • 调用前需要确保Sequelize已完成数据库连接、对应数据表已创建完成
  • 多Schema场景下可以给describeTable传第二个参数指定Schema名称
  • 可以通过Object.keys(tableFields)直接提取所有字段名组成的数组

内容的提问来源于stack exchange,提问作者Norseback

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 04:36:03