I dit upsert() eksempel angiver du ikke id af optagelsen i upsert-metoden. Dette betyder, at efterfølger ikke kan matche id'et til en række (fordi id er udefineret), og derfor indsætter den en ny række.
Selvom du bruger en anden primær nøgle, skal den altid være en egenskab, for at den kan matche, da sequelize bruger den primære nøgle til at søge efter en eksisterende række.
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 ...
})
}
}