Prisma é um ORM (Object-Relational Mapping) moderno que facilita a interação com bancos de dados em aplicações Node.js e TypeScript. Uma das funcionalidades mais importantes do Prisma é o sistema de migrações, que permite manter o esquema do banco de dados sincronizado com o modelo de dados da aplicação. Neste post, vamos explorar o fluxo de trabalho do Prisma utilizando migrations.
O que são Migrations?
Migrations são um método para controlar e aplicar alterações no esquema do banco de dados de forma sistemática e versionada. Elas permitem que você defina mudanças estruturais no banco de dados, como criar ou alterar tabelas, de maneira incremental e reversível.
Fluxo de Trabalho do Prisma com Migrations
O fluxo de trabalho típico com migrations no Prisma envolve os seguintes passos:
Instalação e Configuração Inicial
Definição do Esquema
Criação de uma Migration
Aplicação da Migration
Gerenciamento de Migrations
Passo 1: Instalação e Configuração Inicial
Primeiro, precisamos instalar o Prisma no projeto e inicializá-lo:
npx prisma init
Este comando cria um diretório prisma contendo um arquivo schema.prisma, onde definimos nosso modelo de dados.
Passo 2: Definição do Esquema
No arquivo schema.prisma, definimos os modelos que representam as tabelas do banco de dados. Por exemplo, vamos definir um modelo User:
id Int @id @default(autoincrement())
email String @unique
name String?
}
Aqui, estamos definindo uma tabela User com colunas id, email e name.
Passo 3: Criação de uma Migration
Depois de definir ou alterar o esquema, criamos uma migration para refletir essas mudanças no banco de dados:
O comando migrate dev cria uma nova migration e aplica as mudanças ao banco de dados. O parâmetro –name permite dar um nome descritivo à migration, como init no exemplo acima.
Passo 4: Aplicação da Migration
As migrations são aplicadas automaticamente ao banco de dados quando usamos o comando migrate dev. Isso garante que o banco de dados esteja sempre em sincronia com o modelo de dados definido no schema.prisma.
Se você quiser aplicar migrations em um ambiente de produção, utilize o comando:
Este comando aplica todas as migrations pendentes no banco de dados de produção.
Passo 5: Gerenciamento de Migrations
Prisma mantém um histórico de todas as migrations aplicadas no banco de dados. Isso é útil para rastrear mudanças e reverter migrations, se necessário. Para ver o histórico de migrations, você pode usar:
Este comando mostra o estado atual das migrations, incluindo quais migrations foram aplicadas e quais estão pendentes.
Exemplo Prático
Vamos ver um exemplo prático de como adicionar um novo campo ao modelo User e criar uma migration para essa mudança.
Adicionar o campo ao modelo User no schema.prisma:
model User {
id Int @id @default(autoincrement())
email String @unique
name String?
birthdate DateTime?
}
Criar uma nova migration:
npx prisma migrate dev –name add-birthdate-to-user
Aplicar a migration:
O comando migrate dev já aplica a migration ao banco de dados. Agora, o banco de dados terá o novo campo birthdate na tabela User.
Verificar o estado das migrations:
npx prisma migrate status
Este comando mostrará que a migration add-birthdate-to-user foi aplicada com sucesso.
Conclusão
O fluxo de trabalho do Prisma utilizando migrations é uma maneira eficiente e segura de gerenciar mudanças no esquema do banco de dados. Através de uma sequência clara de passos – definir o esquema, criar migrations, aplicar mudanças e gerenciar o histórico de migrations – é possível manter o banco de dados sincronizado com o modelo de dados da aplicação, facilitando o desenvolvimento e a manutenção do software.
Com Prisma, você não apenas simplifica o gerenciamento do banco de dados, mas também ganha uma poderosa ferramenta para garantir que todas as mudanças sejam rastreáveis e reversíveis, contribuindo para um processo de desenvolvimento mais robusto e ágil.