Sequelize-cli如何在生成模型和迁移文件时不包含时间戳?

时间:2018-02-03 20:39:00

标签: node.js database-migration sequelize-cli

只需按照续集文档(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和/或删除这两个条目,但最好在生成模型/迁移文件时设置一个选项,以便不要使用这些时间戳。有这样的方式吗?

2 个答案:

答案 0 :(得分:2)

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

"dialect": "mysql",
"logging": false,
"define": {
   "timestamps": true
}

答案 1 :(得分:1)

对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