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