Necesito eliminar la restricción de clave externa existente en una columna y agregar una nueva restricción con el mismo nombre que se refiere a la clave principal de otra tabla.
Recibo un error ERROR: Constraint type must be specified through options.type . Aunque estoy proporcionando un tipo de restricción en el objeto de la opción como tercer parámetro.
A continuación se muestra el código de migración como referencia.
async up(queryInterface, Sequelize){ const transaction = await queryInterface.sequelize.transaction(); try { await queryInterface.removeConstraint( 'shipments', 'shipments_status_id_fkey', { transaction } ); await queryInterface.addConstraint( 'shipments', 'status_id', { type: 'foreign key', name: 'shipments_status_id_fkey', references: { table: 'statuses', field: 'id' }, transaction } ); await transaction.commit(); } catch (err) { await transaction.rollback(); throw err; } }La documentación aquí muestra que las opciones deben ser el segundo parámetro para la función addConstraint . https://sequelize.org/master/class/lib/dialects/abstract/query-interface.js~QueryInterface.html#instance-method-addConstraint
await queryInterface.addConstraint( 'shipments', { type: 'foreign key', fields: ['status_id'] name: 'shipments_status_id_fkey', references: { table: 'statuses', field: 'id' }, transaction } );