Я пытаюсь добавить тестирование unit/integration в мой проект sequelize, и у меня возникает проблема при переходе с диалекта postgres на sqlite. Я пытаюсь переопределить функцию defaultValue на 'id'. В результате синтаксис для CREATE TABLE правильный, но исходное значение по умолчанию используется в операторе INSERT, сгенерированном .create()
.Как переопределить функцию sequelize defaultValue для целей тестирования?
Я создал minimal sample project, который иллюстрирует проблему, которую я описываю с неудачным тестом.
Вот соответствующий фрагмент кода:
User = sequelize.define('User', {
id: {
type: Sequelize.UUID,
field: 'id',
defaultValue: sequelize.literal("uuid_generate_v1mc()"),
primaryKey: true
},
name: {
type: Sequelize.STRING,
field: "first_name"
},
});
// why doesn't setting these attributes override the default value
// provided by User.create?
User.attributes.id.defaultValue='b9c96442-2c0d-11e6-b67b-9e71128cae77';
User.tableAttributes.id.defaultValue='b9c96442-2c0d-11e6-b67b-9e71128cae77';
Что лучший способ придать или издеваться функцию DefaultValue?
спасибо, это сделал трюк. принимается и поддерживается. –