PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

Sequelizzare come utilizzare la tabella di associazione?

La soluzione al mio problema era nella documentazione in Associating Objects]1 (Devo averlo saltato).

Questo spiega che se belingsToMany è configurato correttamente verranno creati dinamicamente diversi metodi per gestire l'associazione (getX, addX, getXs, addXs,...).

Il mio secondo problema è stato l'alias che ho fornito in apparteneToMany, poiché non sapevo che prendesse il nome del modello, ho impostato un nome io stesso e li ho scambiati.

Ora che ho rimosso gli alias funziona bene.

db.Game.belongsToMany(db.Platform, {through: db.GamePlatforms, foreignKey: 'game_platforms_fk_game'});
db.Platform.belongsToMany(db.Game, {through: db.GamePlatforms, foreignKey: 'game_platforms_fk_platform'});

Ed ecco il codice che uso per testare "aggiungi un'associazione".

Game.find({where: {game_short: 'SFV'}})
              .then(function(game) {
                Platform.find({where: {platform_short: 'PC'}})
                  .then(plat => game.addPlatform(plat));
              })
              .catch(err => console.log('Error asso game and platform', err));