Tiven

Tiven

博观而约取,厚积而薄发

天问的个人网站(天问博客),专注于Node.js、Vue.js、React、Vite、Npm、Nginx等大前端技术。不断学习新技术,记录日常开发问题,持续分享coding,极客开源,共同进步。生命不息,奋斗不止... [ hexo blog ]

egg-sequelize使用报错:Unknown column 'createdAt' in 'field list'


sequelize 是一个广泛使用的 ORM 框架,它支持 MySQL、PostgreSQL、SQLite 和 MSSQL 等多个数据源。最近在以 Egg.js 为基础框架的项目中使用 egg-sequelize 来操作 MySQL,使用 model 查询过程中出现一个报错:nodejs.SequelizeDatabaseError: Unknown column 'createdAt' in 'field list'

egg-sequelize

一、报错原因

egg-sequelize 插件创建 model 时,会默认包含 createdAtupdatedAt 字段。如果是要查询之前已经创建好的表,而其中又没有 createdAtupdatedAt 字段,就会出现以上报错。

二、解决办法

在 config 中对 sequelize 进行配置,不使用默认的 timestamp 字段。

// config/config.default.js

config.sequelize = {
    dialect: 'mysql',
    host: '127.0.0.1',
    port: '3306',
    user: 'root',
    password: '123456',
    database: 'egg',
    define: {
        timestamps: false, // 关键配置,默认为 true, 修改为 false 即可
        freezeTableName: true,
    }
}

大功告成 ~O(∩_∩)O~


欢迎访问:天问博客