Във вашия пример upsert() вие не предоставяте id на влизане в метода upsert. Това означава, че секвелизирането не може да съответства на id към ред (тъй като id е недефиниран) и следователно вмъква нов ред.
Дори ако използвате различен първичен ключ, той винаги трябва да е свойство, за да съвпада, тъй като sequelize използва първичния ключ за търсене на съществуващ ред.
createOrUpdateTransaction: {
type: Transaction,
args: {
// Omitted code...
},
resolve: (root, args) => {
return db.models.transaction.upsert({
// The id property must be defined in the args object for
// it to match to an existing row. If args.id is undefined
// it will insert a new row.
id: args.id,
time: new Date().toString(),
payerAccountNumber: args.payerAccountNumber,
recipientAccountNumber: args.recipientAccountNumber,
amount: args.amount,
currency: args.currency,
paymentMethod: args.paymentMethod,
cardNumber: args.cardNumber,
cardName: args.cardName,
cardNetwork: args.cardNetwork,
// Omitted fields ...
})
}
}