Snippet compartilhadoemanuelVINI0105 de junho de 2026

prisma

Importado de: https://github.com/emanuelVINI01/snippetvault/blob/main/src/prisma.ts

TypeScript
import
typescript
1import "dotenv/config";
2import { PrismaPg } from "@prisma/adapter-pg";
3import { PrismaClient } from "@/prisma/generated/client";
4
5const connectionString = `${process.env.PRISMA_DATABASE_URL}`;
6
7const adapter = new PrismaPg({ connectionString });
8const prisma = new PrismaClient({ adapter });
9
10export { prisma };

Análise de Inteligência Artificial

Explicação

Configuração do Prisma Client com adaptador PostgreSQL.

Descrição sugerida

Este snippet configura uma instância global do Prisma Client utilizando o adaptador oficial para PostgreSQL (@prisma/adapter-pg), permitindo o uso de drivers nativos e carregamento automático de variáveis de ambiente.

Linguagem e tags

TypeScript

#prisma#postgresql#orm#database#typescript#backend#dotenv

Bugs e melhorias

Ausência de validação de variável de ambientemedium

O código assume que 'PRISMA_DATABASE_URL' sempre existirá. Se a variável estiver ausente, a conexão falhará silenciosamente ou com erro de runtime pouco descritivo.

Uso de template string desnecessáriolow

A atribuição da connectionString usa interpolação desnecessária em uma string que já é, ou deveria ser, uma string pura.

Refatoração sugerida

  • Adicionada validação para garantir que a URL de conexão exista.
  • Implementado o uso de 'pg.Pool' que é a prática recomendada para o adaptador PrismaPg.
  • Melhorada a robustez do carregamento de ambiente.
import "dotenv/config";
import { PrismaPg } from "@prisma/adapter-pg";
import { PrismaClient } from "@/prisma/generated/client";
import { Pool } from "pg";

const connectionString = process.env.PRISMA_DATABASE_URL;

if (!connectionString) {
  throw new Error("A variável de ambiente PRISMA_DATABASE_URL não foi definida.");
}

const pool = new Pool({ connectionString });
const adapter = new PrismaPg(pool);
const prisma = new PrismaClient({ adapter });

export { prisma };

Exemplo de Uso do Cliente Prisma

Importe a instância exportada em seus serviços ou controladores para realizar operações no banco de dados.

import { prisma } from "./prisma";

async function main() {
  const allUsers = await prisma.user.findMany();
  console.log(allUsers);
}

main();