Como migrar do Prisma para o Drizzle
Guia passo a passo para uma transição tranquila e sem sofrimentos.
Recentemente realizei uma migração de uma codebase de um projeto que utilizava o Prisma para o Drizzle,
e resolvi compartilhar algumas experiências que (eu sofri mas você não precisa) talvez possam ser úteis para você.
Antes de comerçar, o Drizzle ORM (ou somente Drizzle) é um Object Relational Mapper (ORM) leve, rápido e typesafe. Ele permite que você escreva suas queries no formato similar ao SQL e oferece suporte nativo a serverless.
Principais vantagens do Drizzle
Vamos falar um pouco sobre as principais vantagens do Drizzle em relação à outros ORMs e entender o porquê de migrar para ele.
Escrevendo SQL com segurança
O Drizzle permite que você escreva consultas que se assemelham muito ao SQL, porém são escritas utilizando typescript, que permite a verificação de tipagem estática. Isso significa que você pode aproveitar o "autocomplete" do seu editor e também evitar erros comuns de sintaxe.
Um exemplo simples de uma query para buscar um usuário pelo ID:
import { eq } from 'drizzle-orm';import { users } from './schema';const user = await db.select().from(users).where(eq(users.id, 1));SELECT * FROM users WHERE id = 1;
Performático
Ele foi projetado para ser rápido e eficiente, minimizando a sobrecarga que alguns ORMs tradicionais podem introduzir. Isso é especialmente benéfico em ambientes serverless ou de alto impacto, onde a performance é crucial.
Ainda não está convencido? Da uma olhada nesse benchmark 👇
Comunidade crescente e ativa
Apesar de ser relativamente novo, o Drizzle tem uma comunidade ativa e em crescimento. Isso significa que você pode encontrar suporte, tutoriais e exemplos que serão de grande ajuda na hora de aprender e resolver problemas.
Passo a passo para migrar
Analisar o esquema atual
Antes de começar, é importante entender como está estruturado o seu esquema no Prisma. Revise os modelos definidos no arquivo schema.prisma e identifique as tabelas, relações e campos principais.
Criar o esquema no Drizzle
No Drizzle, você define o esquema utilizando TypeScript. Aqui está um exemplo de como migrar um modelo simples:
model User {id Int @id @default(autoincrement())name Stringemail String @uniqueposts Post[]}model Post {id Int @id @default(autoincrement())title Stringcontent String?authorId Intauthor User @relation(fields: [authorId], references: [id])}
Configurar a conexão com o banco
No Prisma, a conexão com o banco é configurada no arquivo prisma/.env. No Drizzle, você pode configurar a conexão diretamente no código:
import { PrismaClient } from '@prisma/client'const prisma = new PrismaClient()export default prisma
Migrar queries
Agora, é hora de migrar as queries. Aqui estão alguns exemplos de como converter queries comuns do Prisma para o Drizzle:
const user = await prisma.user.findUnique({where: { id: 1 },include: {posts: true,},});
Testar e validar
Após migrar o esquema e as queries, teste sua aplicação para garantir que tudo está funcionando como esperado. Verifique se as consultas estão retornando os dados corretos e se o desempenho está adequado.
Conclusão
Migrar para o Drizzle pode parecer uma tarefa desafiadora, mas, seguindo um passo a passo estruturado se torna um processo tranquilo!
Então para começar, eu recomendo iniciar com um projeto pequeno para se familiarizar com o processo e, aos poucos, entender como o ORM funciona antes de migrar projetos maiores!
Obrigado por ler até aqui!