No estoy seguro de si esto es un error o un problema mío, pero tengo este modelo básico
const { DataTypes } = require('sequelize'); sequelize.define( 'Submission', { id: { allowNull: false, autoIncrement: true, primaryKey: true, type: DataTypes.INTEGER, }, widgetId: { allowNull: false, type: DataTypes.INTEGER, references: { field: 'widget_id', model: { tableName: 'widget', schema: 'public', }, key: 'id', }, field: 'widget_id', }, createdAt: { type: DataTypes.DATE, field: 'created_at', }, updatedAt: { type: DataTypes.DATE, field: 'updated_at', }, }, { tableName: 'submission', timestamps: true, underscored: true, }, ); y el modelo de widget es idéntico excepto las columnas/campos y tiene un campo de id . Puedo crear un objeto / fila de widget en nuestra base de datos perfectamente bien.
Al intentar expandir eso y crear una entrada de envío al mismo tiempo que el widget, expandí las cosas y las probé agregando las asociaciones y el código de prueba como tal.
widget.submission = widget.hasOne(submission); submission.widget = submission.belongsTo(widget); instance.models.Widget.create({ widgetId: '123456789', title: 'test', Submission: { message: 'test', }, }, { include: [{ association: widget.submission, }] }).then(r => console.log(r)) .catch(err => console.log(err));y me sale el siguiente error
ValidationError [SequelizeValidationError]: notNull Violation: Submission.widgetId cannot be null parece ignorar mi field: 'widget_id y asume widgetId . La opción de campo parece funcionar para todo menos esto
de todos modos para manejar eso? ¡gracias!