Sequelize создать строку, даже если данные передачи не существует поля / столбца - PullRequest
1 голос
/ 09 февраля 2020

Я создаю тест для моих моделей, теперь мой сценарий - я хочу вставить в таблицу столбец / поле, которое не определено в моей Sequelize схеме.

Вот мой пример для моя схема

class ResploginSchema extends Sequelize.Model { }
ResploginSchema.init(
    {
        resploginID: {
            type: Sequelize.BIGINT(20).UNSIGNED,
            autoIncrement: true,
            primaryKey: true,
            allowNull: false
        },
        clientID: {
            type: Sequelize.INTEGER(10).UNSIGNED,
            allowNull: false,
            validate: {
                isNumeric: true
            }
        },
        tablelimitID: {
            type: Sequelize.TINYINT(2).UNSIGNED,
            allowNull: false
        },
        errMsgID: {
            type: Sequelize.INTEGER(6).UNSIGNED,
            allowNull: false
        }
    },
    {
        sequelize: dbConnection,
        modelName: "resplogin",
        freezeTableName: true,
        timestamps: false
    }
);

Вот пример данных, которые я хочу вставить

let data = {
            clientID: 1,
            sessionID: "not defined field",
            tablelimitID: 1,
            errMsgID: 0
        };


ResploginSchema.create(data)

Я ожидал, что он должен вернуть ошибку, сообщающую, что sessionID не определено в определении модели.

Возможно, я пропустил некоторые настройки модели. Заранее спасибо

Версия Sequelize: 5.21.3

Версия узла: 10.14.2

1 Ответ

0 голосов
/ 09 февраля 2020

Это ожидаемое поведение. Sequelize попытается найти только те поля в схеме, которые ему безразличны, если есть другие поля. Фактически, во многих случаях вам могут понадобиться виртуальные поля, которые не хранятся в базе данных, но вы можете использовать в своей бизнес-логике c.

...