2
respostas

erro na criação de seed curso ORM com node.js

boa tarde, estou tendo problemas ao realizar o seed da tabela "cursos", apresenta a seguinte falha:

ERROR: SQLITE_ERROR: table cursos has no column named descricao.

Gostaria de checar o que posso estar deixando de fazer.

Agradeço a atenção.

Arquivo de migração cursos:

'use strict'; /** @type {import('sequelize-cli').Migration} */ module.exports = { async up(queryInterface, Sequelize) { await queryInterface.createTable('cursos', { id: { allowNull: false, autoIncrement: true, primaryKey: true, type: Sequelize.INTEGER }, titulo: { type: Sequelize.STRING }, descricao: { type: Sequelize.STRING }, data_inicio: { type: Sequelize.DATEONLY }, docente_id: { allowNull: false, type: Sequelize.INTEGER, references: { model: 'pessoas', key: 'id' } }, categoria_id: { allowNull: false, type: Sequelize.INTEGER, references: { model: 'categorias', key: 'id' } }, createdAt: { allowNull: false, type: Sequelize.DATE }, updatedAt: { allowNull: false, type: Sequelize.DATE } }); }, async down(queryInterface, Sequelize) { await queryInterface.dropTable('cursos'); } };

Arquivo seed curso:

'use strict';

/** @type {import('sequelize-cli').Migration} */ module.exports = { async up (queryInterface, Sequelize) { await queryInterface.bulkInsert('cursos', [ { titulo: 'API com Express', descricao: 'Curso de API com Express e MongoDB', data_inicio: '2023-01-01', categoria_id: 1, docente_id: 5, createdAt: new Date(), updatedAt: new Date(), }, { titulo: 'SpringBoot', descricao: 'Curso de Java com Spring Framework', data_inicio: '2023-01-01', categoria_id: 2, docente_id: 5, createdAt: new Date(), updatedAt: new Date(), }, { titulo: 'Python Web com Django', descricao: 'Curso de aplicações web com Django', data_inicio: '2023-01-01', categoria_id: 3, docente_id: 6, createdAt: new Date(), updatedAt: new Date(), }, { titulo: 'Orientação a Objetos com C#', descricao: 'Curso de C#: coleções, arquivos e libs', data_inicio: '2023-01-01', categoria_id: 4, docente_id: 6, createdAt: new Date(), updatedAt: new Date(), }, ], {}); },

async down (queryInterface, Sequelize) { await queryInterface.bulkDelete('cursos', null, {}); } };

Comando utilizado para seedar :

npx sequelize-cli db:seed --seed 20240206105653-demo-cursos.js

2 respostas

Beleza Luan? O problema parece estar relacionado ao fato de que a tabela cursos não possui a coluna descricao, conforme indicado no erro que você recebeu. Isso pode acontecer se houve alguma alteração na estrutura da tabela após a criação do seed.

Boa noite irmãozinho, ainda não localizei o que pode estar havendo de errado. Notei que no meu arquivo Models/curso a palavra "descrição" estava com Ç mas ja realizei a alteração e ainda assim não funciona. Consegue imaginar outro ponto que possa ser observado?

Arquivo Model:

'use strict'; const { Model } = require('sequelize'); module.exports = (sequelize, DataTypes) => { class Curso extends Model { 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;

  1. };