Sequelize-cli, как не включать временные метки при создании файлов модели и миграции?

Просто следуя документу 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 и / или удаление этих двух записей вручную, но было бы лучше установить опцию при генерации файлов модели / миграции, чтобы эти метки времени не имели. Есть ли такой способ?

1 ответ

Вы можете установить параметры в config.json также. Это работает для всех моделей.

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

Используйте параметр --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
Другие вопросы по тегам