PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Sequelize comment utiliser la table d'association ?

La solution à mon problème se trouvait dans la documentation sous Associating Objects]1 (J'ai dû l'ignorer).

Ceci explique que si belingsToMany est correctement configuré plusieurs méthodes seront créées dynamiquement pour gérer l'association (getX, addX, getXs, addXs,...).

Mon deuxième problème était l'alias que j'ai donné dans namesToMany, puisque je ne savais pas qu'il prenait le nom du modèle, j'ai défini un nom moi-même et je les ai échangés.

Maintenant que j'ai supprimé les alias, cela fonctionne bien.

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'});

Et voici le code que j'utilise pour tester "ajouter une association".

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));