Rota: Encerrar organização
lucasmilhoranca opened this issue · comments
Ao tentar excluir uma organização por meio da operação prisma.organization.delete, ocorre um erro pois toda organização possui no mínimo uma ou mais associações na tabela members, que representa o relacionamento muitos para muitos entre usuários e organizações. Isso ocorre porque a tentativa de exclusão de uma organização que possui membros relacionados viola a restrição de chave estrangeira na tabela members_organization_id_fkey.
Passos para Reproduzir:
Tente excluir uma organização que possui membros associados utilizando a operação prisma.organization.delete.
Observe que a operação falha e lança um erro devido à violação de chave estrangeira.
Mensagem de Erro:
"PrismaClientKnownRequestError: Invalid prisma.organization.delete()
invocation in /shutdown-organization.ts:46:35"
Solução Proposta:
Uma solução proposta para resolver esse problema é excluir primeiro os membros associados à organização utilizando a operação prisma.member.deleteMany, e então excluir a organização utilizando a operação prisma.organization.delete.
await prisma.member.deleteMany({
where: {
organizationId: organization.id,
},
});
await prisma.organization.delete({
where: {
id: organization.id,
},
});
Nota Adicional:
Esta solução garante que todas as associações de membros da organização sejam excluídas antes de tentar excluir a organização em si, evitando assim a violação de chave estrangeira na tabela members_organization_id_fkey.
Muito bom @lucasmilhoranca!