1
resposta

"erro": "SQLITE_CONSTRAINT: FOREIGN KEY constraint failed"

Olá Eu estou tentanto fazer o soft delete. Porém o postman aparece pra mim "erro": "SQLITE_CONSTRAINT: FOREIGN KEY constraint failed".

Pensei que foi porque eu fiz um copia e cola do banco de dados que Veio do github. Porém, eu apaguei as migrações anteriores e atualizei com as minhas no sequelizemeta. Porém ainda dá erro. Coloquei o deleteon: 'cascade' em todas as migrations e não funciona

1 resposta

Oi Angelo! Como vai?

Esse erro geralmente ocorre quando há uma tentativa de deletar um registro que ainda está referenciado por outra tabela. Mesmo com o onDelete: 'CASCADE', o erro pode aparecer se a configuração não estiver corretamente aplicada ou se houver inconsistências no banco de dados.

Aqui estão algumas sugestões que podem ajudar a resolver o problema:

  1. Verifique as Relações: Certifique-se de que todas as relações entre as tabelas estão corretamente definidas no Sequelize. As associações devem estar configuradas com onDelete: 'CASCADE' para que a exclusão em cascata funcione corretamente.

    // Exemplo de associação com onDelete: 'CASCADE'
    models.Pessoa.hasMany(models.Matricula, { foreignKey: 'pessoaId', onDelete: 'CASCADE' });
    models.Matricula.belongsTo(models.Pessoa, { foreignKey: 'pessoaId' });
    
  2. Migrações: Verifique se as migrações foram aplicadas corretamente. Você pode tentar rodar novamente as migrações ou verificar se todas as colunas e chaves estrangeiras estão corretamente definidas.

  3. Consistência do Banco de Dados: Se você fez alterações manuais no banco de dados ou copiou dados de outra fonte, pode haver inconsistências. Tente verificar se todas as chaves estrangeiras estão apontando para registros válidos.

Espero que essas dicas ajudem a resolver o problema e bons estudos!

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