PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

Sequelize como usar a tabela de associação?


A solução para o meu problema estava na documentação em Associating Objects]1 (devo ter ignorado).

Isso explica que se belingsToMany estiver configurado corretamente vários métodos serão criados dinamicamente para gerenciar a associação (getX, addX, getXs, addXs,...).

Meu segundo problema foi o alias que eu dei em belongsToMany, já que eu não sabia que pegava o nome do modelo eu mesmo dei um nome e troquei.

Agora que eu removi os aliases, funciona bem.
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'});

E aqui está o código que uso para testar "adicionar uma associação".
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));