如何使用Sequelize-CLI生成模型和迁移文件时不包含时间戳?
解决Sequelize-CLI生成模型/迁移时自动添加时间戳的问题
嘿,这个需求我太懂了——手动删字段或者改配置确实麻烦,其实sequelize-cli早就提供了两种方式在生成阶段直接禁用时间戳,不用事后修改:
1. 单模型生成时通过命令行参数禁用
生成单个模型的时候,直接加上--no-timestamps参数就行,比如:
sequelize model:generate --name User --attributes username:string,email:string --no-timestamps
这样生成的模型文件(models/user.js)里会自动带上timestamps: false配置,对应的迁移文件也不会出现createdAt和updatedAt字段。
2. 全局配置默认禁用所有模型的时间戳
如果你的项目里绝大多数模型都不需要时间戳,直接在Sequelize的配置文件里全局设置更高效:
找到项目根目录下的config/config.js(或者config.json,取决于你的初始化方式),在环境配置里添加define: { timestamps: false }:
module.exports = { development: { username: "your_username", password: "your_password", database: "your_db", host: "127.0.0.1", dialect: "mysql", // 全局禁用时间戳 define: { timestamps: false } }, production: { // 生产环境同理配置 username: "prod_user", password: "prod_pass", database: "prod_db", host: "prod_host", dialect: "mysql", define: { timestamps: false } } };
之后再生成任何模型,默认都不会带时间戳字段。如果某几个特殊模型需要时间戳,只需要在生成时加上--timestamps参数覆盖全局配置就行。
内容的提问来源于stack exchange,提问作者swiss_knight
相关产品推荐
相关产品推荐

