3

只需按照 sequelize 文档 ( http://docs.sequelizejs.com/manual/tutorial/migrations.html ),我们可以使用 sequelize-cli 命令生成模型和迁移文件,例如:

sequelize model:generate --name Users --attributes firstName:string,lastName:string,bio:text

但是,在迁移文件中,可以找到两个额外的时间戳值,它们将被添加到数据库中:

  createdAt: {
    allowNull: false,
    type: Sequelize.DATE
  },
  updatedAt: {
    allowNull: false,
    type: Sequelize.DATE
  }

我知道我可以timestamp: false手动设置和/或删除这两个条目,但最好在生成模型/迁移文件时设置一个选项以不具有这些时间戳。有没有这样的方法?

4

2 回答 2

3

您也可以设置选项config.json。它适用于所有型号。

"dialect": "mysql",
"logging": false,
"define": {
   "timestamps": true
}
于 2018-02-26T14:34:19.357 回答
2

将 --underscored 参数用于 sequelize-cli。

例子:

sequelize-cli model:generate --name User --attributes login:string,password:string,token:string,token_exp:date,firstName:string,lastName:string,email:string,phone:string --underscored

或使用包含以下内容的文件“config.json”:

{
  "define": {
    "underscored": true,
    "freezeTableName": true,
    "charset": "utf8",
    "dialectOptions": {
      "collate": "utf8_general_ci"
    },
    "timestamps": true,
    "createdAt": "created_at",
    "updatedAt": "updated_at",
    "createdBy": "created_by",
    "updatedBy": "updated_by"
  }
}

..并将其作为参数传递给命令行:

sequelize-cli model:generate --name User --attributes login:string,password:string,token:string,token_exp:date,firstName:string,lastName:string,email:string,phone:string --config config.json
于 2020-10-06T19:04:56.643 回答