swiss_knight
swiss_knight

Reputation: 7781

Sequelize-cli how not to include timestamps while generating model and migration files?

Just following the sequelize doc ( http://docs.sequelizejs.com/manual/tutorial/migrations.html ), we can generate a model and a migration file using the sequelize-cli command like:

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

but then, in the migration file, one can find two additional timestamps values that will be added to the DB:

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

I know I can set timestamp: false and/or deleting these two entries manually, but it would be better to set an option while generating the model/migration files not to have these timestamps. Is there such a way?

Upvotes: 4

Views: 5632

Answers (2)

Andrew Zolotarev
Andrew Zolotarev

Reputation: 159

Use --underscored param for sequelize-cli.

Example:

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

or use file 'config.json' with this contents:

{
  "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"
  }
}

..and pass it to command line as param:

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

Upvotes: 3

Shahzeb Khan
Shahzeb Khan

Reputation: 3642

You can set the options in config.json as well. It works for all models.

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

Upvotes: 3

Related Questions