Когда я запускаю следующую команду:
sequelize-cli model:create --name User --attributes "dispName:string,email:string,phoneNum1:string"
Я получаю следующий файл миграции:
'use strict';
module.exports = {
up: (queryInterface, Sequelize) => {
return queryInterface.createTable('Users', {
id: {
allowNull: false,
autoIncrement: true,
primaryKey: true,
type: Sequelize.INTEGER
},
dispName: {
type: Sequelize.STRING
},
email: {
type: Sequelize.STRING
},
phoneNum1: {
type: Sequelize.STRING
},
createdAt: {
allowNull: false,
type: Sequelize.DATE
},
updatedAt: {
allowNull: false,
type: Sequelize.DATE
}
});
},
down: (queryInterface, Sequelize) => {
return queryInterface.dropTable('Users');
}
};
и следующий файл модели:
'use strict';
module.exports = (sequelize, DataTypes) => {
const User = sequelize.define('User', {
dispName: DataTypes.STRING,
email: DataTypes.STRING,
phoneNum1: DataTypes.STRING
}, {});
User.associate = function(models) {
// associations can be defined here
};
return User;
};
Вопросы:
- Почему файл модели не содержит определения для
id
? - Если я изменю имя и / или определение поля первичного ключа ( ключ будет сгенерирован извне и будет установлен на объекте до его сохранения), тогда нужно ли включать определение поля идентификатора в файл модели? Почему / почему нет?
Версии:
[Node: 12.14.1, CLI: 5.5.1, ORM: 5.21.3]
Следующие не отвечают на мой вопрос: