Создана модель с использованием:
sequelize-cli model:create --name User --attributes "dispName:string,email:string,phoneNum1:string,vendorId:integer"
, что привело к следующей миграции:
'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
},
// plus others...
});
},
down: (queryInterface, Sequelize) => {
return queryInterface.dropTable('Users');
}
};
Я хочу изменить автоматически определенный идентификатор на:
cognitoId: {
allowNull: false,
primaryKey: true,
type: Sequelize.STRING(100)
}
Итак:
- Сможет ли sequelize распознать это как идентификатор?
- Где все, что мне нужно для этого изменения? Я мог только идентифицировать файл миграции.
- В файле модели нет определения для
cognitoId
(или оригинального автоматически сгенерированного поля id
): как я смогу получить значение cognitoId
* * экземпляра User
(в данных, возвращаемых запросами)? - Будет ли изменение автоматически сгенерированного поля
id
иметь последствия в строке? - Является ли имя поля
id
"волшебный"? Т.е. первичный ключ должен называться id
? - Есть ли лучший способ сделать это?
- Будет ли изменение типы полей от
Sequelize.STRING
до Sequelize.STRING(100)
создают проблемы в дальнейшем? - Почему в файле моделей, сгенерированном sequelize-cli, не определено поле
id
?
При генерации моделей + миграций из командной строки я не смог найти синтаксис для указания идентификатора или любую другую настройку для полей.
Использование:
[Node: 12.14.1, CLI: 5.5.1, ORM: 5.21.3]
PS: относительно новый для NodeJS и совершенно новый для Sequelize.