2016-07-11 13 views
2

Ich rufe save() auf ein Objekt, das bereits in meiner Datenbank existiert und einen Primärschlüssel definiert hat.Warum nicht speichern() in Sequelize arbeiten?

Anstatt das Objekt zu aktualisieren, sagt Sequelize mir id must be unique. Warum?

Ich will nicht sagen müssen update({every,single,field,except,the,id}). Das ist so langweilig.

Hier ist mein aktueller Code:

const instance = db.dbo__peach_payments_transactions.build(existingPayment); 
return db.transaction(async (transaction) => { 
    return instance.save(); 
}); 

Ich habe auch jetzt versucht:

return instance.update({fields: [ 
      'updated_at', 
      'orders_id', 
      'payment_states_id', 
      'response_data', 
      'token', 
      'result', 
      'reason_code', 
      'reason_message', 
      'price', 
      'processed_at']}); 
     }); 

aber dies erzeugt das gegenüber SQL, anstatt die Felder zu retten, sie schließt sie geben mir den Fehler: updated_at cannot be null (auch wenn es nicht null ist) mit diesem sql:

"INSERT INTO "dbo"."peach_payments_transactions" ("peach_payments_transactions_id","created_at") VALUES ('7fb301e9-bb72-4a70-9ee5-0db1376e83e8','2016-07-11 13:48:20.137 +00:00') RETURNING *;"

+1

können Sie überprüfen, ob '' instance.isNewRecord' false' Wert hat? Wie bekommen Sie die 'Instanz'? Mit der '.find()' Funktion? – demarchisd

+0

Ich erhalte die Instanz vom Client (Browser), wenn sie meinen Server anruft. Ich werde versuchen, jetzt isNewRecord set, danke, das ist nicht in der Dokumentation. – Richard

+0

Ja, danke, das funktioniert. Aw Mann, ich wünschte, die Jungs von Sequelize würden ihre Dokumente aktualisieren. Ich fühle, dass ich mit dieser Bibliothek einen Schneesturm bekämpfe. Und es gibt kaum jemanden auf Stackoverflow entweder :-( – Richard

Antwort

3

könnte versuchen Sie instance.isNewRecord zu false Einstellung, bevor sie an den Server gesendet werden?

Vielleicht ist sequelize es angesichts eines neuen Datensatzes, also versucht er es einzufügen statt Aktualisierung

+0

Wenn Sie mehr Punkte wollen: http://stackoverflow.com/questions/38304742/how-to-do-ordern-a-select-in-sequelize-korrekt – Richard

Verwandte Themen