Felipe Cesar

    Como executar queries com Prisma

    O Prisma simplifica significativamente a interação com bancos de dados, e o Prisma Client é uma das ferramentas principais que tornam isso possível. Neste post, você aprenderá como executar queries e habilitar logs para depuração e criar dados com segurança e eficiência.

    Se você é novo no Prisma, recomendo a leitura do post anterior para entender melhor os componentes essenciais dessa poderosa ferramenta.

    O que é o Prisma Client e como usá-lo?

    O Prisma Client é a interface que permite realizar queries no seu banco de dados de forma simples e intuitiva. Para começar, importe o Prisma Client no seu projeto:

    import { PrismaClient } from "@prisma/client";

    Em seguida, instancie-o:

    const prisma = new PrismaClient();

    Agora, você está pronto para executar queries no lado do servidor. Por exemplo, para buscar um usuário com um e-mail específico:

    const existingEmail = await prisma.user.findUnique({
      where: {
        email: userData.email,
      }
    });

    Um dos recursos mais úteis do Prisma Client é o autocomplete, que oferece sugestões baseadas nos modelos definidos no seu esquema. Isso acelera o desenvolvimento e reduz erros.

    Habilitando logs de queries

    Quando você utiliza métodos como findUnique, o Prisma executa queries no banco de dados para recuperar as informações. Para visualizar essas queries no terminal, basta habilitar os logs ao instanciar o Prisma Client:

    const prisma = new PrismaClient({
      log: ['query']
    });

    Com essa configuração, todas as queries executadas serão exibidas no terminal enquanto sua aplicação está em execução. Isso é extremamente útil para depuração e monitoramento.

    Criando registros no banco

    Criar registros no banco de dados é simples e seguro com o Prisma. Você pode usar o método create, que espera uma propriedade data contendo os dados que você deseja inserir:

    const savedUser = await prisma.user.create({
      data: {
        email: email.toLowerCase(),
        firstName,
        lastName,
        password: hashedPassword,
        role: "admin",
      }
    });

    Se você tentar inserir um valor incompatível com o tipo definido no modelo, o Prisma gerará um erro. Essa tipagem robusta é um recurso valioso que ajuda a evitar problemas comuns em interações com bancos de dados.

    Definindo tipos explicitamente

    Caso prefira definir os dados em outro local, você pode usar utilitários do Prisma para especificar explicitamente o tipo do objeto:

    const userData: Prisma.UserCreateInput = {
      email: email.toLowerCase(),
      firstName,
      lastName,
      password: hashedPassword,
      role: "admin",
    };
    
    const savedUser = await prisma.user.create({
      data: userData
    });

    Conclusão

    O Prisma é uma ferramenta incrivelmente poderosa para trabalhar com bancos de dados. Ele oferece tipagem segura, autocomplete e logs para simplificar o processo de desenvolvimento e reduzir erros.

    Se você gostou deste conteúdo, compartilhe com sua rede e ajude outros desenvolvedores a descobrirem os benefícios do Prisma!