Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Erro do SQLite no such column: Curso.status

Boa tarde pessoal, estou acompanhando o curso e ao fazer uma requisição me deparei com esse erro e até agora não consegui encontrar, segue códigos:

Services.js

const db = require('../database/models');

class Services {
    constructor(model) {
        this.model = model;
    }

    async getAllPersons() {
        return await db[this.model].findAll();
    }
    async getAllPersonsActive(escopo) {
        return await db[this.model].scope(escopo).findAll();
    }

    async pegaUmRegistroPorId(id) {
        return db[this.model].findByPk(id);
    }
    async pegaUmRegistro(where) {
        const x = await db[this.model].findOne({ where: { ...where } });
        return x;
    }
    
    async criaRegistro(dadosDoRegistro) {
        return db[this.model].create(dadosDoRegistro);
    }
    
    async atualizaRegistro(data,id) {
        const registroAttList = db[this.model].update(data,
            {
                where: {id: id}
            });
        return registroAttList[0] !== 0;
    }
        

    async excluiRegistro(id) {
        return db[this.model].destroy({ where: { id: id } });
    }
}

module.exports = Services;

Curso.js

'use strict';
const {
    Model
} = require('sequelize');
module.exports = (sequelize, DataTypes) => {
    class Curso 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) {
            Curso.belongsTo(models.Categoria, {foreignKey: 'categoria_id',});
            Curso.belongsTo(models.Pessoa, {foreignKey: 'docente_id',});
            Curso.hasMany(models.Matricula, {foreignKey: 'curso_id',});
        }
    }
    Curso.init({
        titulo: DataTypes.STRING,
        descricao: DataTypes.STRING,
        data_inicio: DataTypes.DATEONLY
    }, {
        sequelize,
        modelName: 'Curso',
        tableName: 'cursos'
    });
    return Curso;
};

matricula.js

'use strict';
const {
    Model
} = require('sequelize');
module.exports = (sequelize, DataTypes) => {
    class Matricula extends Model {
        static associate(models) {
            Matricula.belongsTo(models.Pessoa, {foreignKey: 'estudante_id',});
            Matricula.belongsTo(models.Curso, {foreignKey: 'curso_id', as: 'curso'});
        }
    }
    Matricula.init({
        status: DataTypes.STRING
    }, {
        sequelize,
        modelName: 'Matricula',
        tableName: 'matriculas'
    });
    return Matricula;
};

PessoasRoutes.js

const {Router} = require('express');
const pessoasController = require('../controllers/PessoaController.js');
const MatriculaController = require('../controllers/MatriculaController.js');

const pessoaController = new pessoasController();
const matriculaController = new MatriculaController();

const router = Router();

router.get('/pessoas', (req, res) =>pessoaController.getAll(req, res));
router.get('/pessoas/all', (req, res) => pessoaController.pegaTodosOsRegistros(req,res));
router.get('/pessoas/:id', (req, res) =>pessoaController.pegaUmPorId(req, res));
router.put('/pessoas/:id', (req, res) =>pessoaController.atualiza(req, res));
router.post('/pessoas/', (req, res) =>pessoaController.criaNovo(req, res));
router.delete('/pessoas/:id', (req, res) => pessoaController.exclui(req, res));

router.get('/pessoas/:estudante_id/matriculas', (req, res) =>pessoaController.pegaMatriculas(req, res));
router.post('/pessoas/:estudante_id/matriculas', (req, res) => matriculaController.criaNovo(req, res));

module.exports = router;

Se precisar de mais informações, só pedir, agradeço desde já

1 resposta
solução!

Já consegui encontrar o erro, estava no Scope de Matrícula no model de pessoa