1
resposta

Matriculas.belongsTo called with something that's not a subclass of Sequelize.Model

Ao tentar rodar o banco no postman após fazer o passo a passo da aula me deparei com esse erro e não consigo ver onde estaria o erro. Alguém já teve esse mesmo problema?

'use restrict'

const {
  Model
} = require('sequelize');
const { sequelize } = require('.');
module.exports = (sequelize, DataTypes) => {
  class Matriculas extends Model {
    /**
     * Helper method for defining associations.
     * This method is not a part of Sequelize lifecycle.
     * The `models/index` file will call this method automatically.
     */
    static associate(models) {
      Matriculas.belongsTo(models.Pessoas, {
        foreignKey:'estudante_id'
      })
      Matriculas.belongsTo(models.Turmas, {
        foreignKey:'turma_id'
      })
    }
  }
  Matriculas.init({
    status: DataTypes.STRING
  }, {
    sequelize,
    modelName: 'Matriculas',
  });
  return Matriculas;
};
1 resposta

Olá Fernanda, tudo bem?que

Peço desculpa pela demora para responder o seu tópico.

Esse erro geralmente ocorre quando a classe passada para o método belongsTo não é uma subclasse de Sequelize.Model, que seria os modelos das tabelas que criamos na pasta "models". Verifique se as classes Pessoas e Turmas são estão definidas com o mesmo nome nos seus respectivos arquivos na pasta "models".

Caso estejam corretas, verifique se os nomes das classes e das tabelas estão escritos corretamente e se as chaves estrangeiras estão definidas corretamente.

No mais, caso os pontos que comentei não solucionem os seus problemas, peço que compartilhe comigo todos os arquivos do seu projeto. Assim poderei entender melhor o que está acontecendo com o seu projeto.

Espero ter ajudado e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.