Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Rota: Encerrar organização #2

Open
lucasmilhoranca opened this issue May 8, 2024 · 1 comment
Open

Rota: Encerrar organização #2

lucasmilhoranca opened this issue May 8, 2024 · 1 comment

Comments

@lucasmilhoranca
Copy link

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.

@Rychillie
Copy link

Muito bom @lucasmilhoranca!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants