Natknąłem się na dziwny błąd podczas zapisywania rekordu bazy danych z sequelize. Błąd to:

Error: DatabaseError: null value in column 'id' violates not-null constraint

Pole id zostało utworzone serial jako automatyczne inkrementowanie i nie przypisano mu wartości przed save. Oto kod:

order = Order.build(d);
           try {
               await order.save();
           } catch(error) {
               console.log('Order# ${d.platform_order_id} NOT saved.', error.message);
           };

Rozumiem, że nie muszę przypisywać wartości do id, ponieważ baza danych się tym zajmie. Oto order-id-seq:

enter image description here

Co przegapiłem?

0
user938363 6 listopad 2018, 21:22

1 odpowiedź

Najlepsza odpowiedź

Możesz zmienić schemat modelu definicji jak poniżej :-

dodaj autoIncrement: prawda w podanym identyfikatorze

id: {
    type: DataTypes.UUID,
    field: 'id',
    allowNull: false,
    primaryKey: true,
    autoIncrement: true
}
1
Chandru 6 listopad 2018, 23:10