Estoy tratando de crear una asistencia entre mis tablas como esta:
Customers.associate = (models) => { Customers.hasMany(models.Addresses, {foreignKey: 'id', as: 'aId', onDelete: "cascade", }); Customers.hasMany(models.Orderline, { onDelete: "cascade", }); };Tengo una tabla de clientes donde un cliente puede tener muchas direcciones si lo desea y muchos pedidos. Sigo recibiendo este error:
throw new Error ( ${this.name}.hasMany called with something that's not a subclass of Sequelize.Model ); Error: Customers.hasMany llamó con algo que no es una subclase de Sequelize.Model
He buscado sugerencias en línea, pero todavía estoy atascado. Gracias por cualquier ayuda/orientación.
Primero debe verificar si registra todos los modelos ANTES de registrar cualquier asociación. Puedes mirar cómo hacerlo en mi respuesta .
En segundo lugar, debe corregir la primera definición de asociación hasMany porque dudo mucho que Direcciones tenga una columna de id como una columna de clave externa que apunte a Clientes:
// assuming Addresses has customerId as a foreign key column we need to indicate it: Customers.hasMany(models.Addresses, {foreignKey: 'customerId', as: 'addresses', onDelete: "cascade", }); Tal vez sería una buena idea indicar una clave externa en otra asociación hasMany también:
Customers.hasMany(models.Orderline, { foreignKey: 'customerId', onDelete: "cascade", });