prisma
Importado de: https://github.com/emanuelVINI01/snippetvault/blob/main/src/prisma.ts
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
Bugs e melhorias
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.
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();