DEV Community

Leandro Martins
Leandro Martins

Posted on

1

Entendendo o Fluxo de Trabalho do Prisma Utilizando Migrations

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:

  1. Instalação e Configuração Inicial
  2. Definição do Esquema
  3. Criação de uma Migration
  4. Aplicação da Migration
  5. Gerenciamento de Migrations

Passo 1: Instalação e Configuração Inicial

Primeiro, precisamos instalar o Prisma no projeto e inicializá-lo:

npm install @prisma/client
npx prisma init

Enter fullscreen mode Exit fullscreen mode

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:

model User {
  id    Int     @id @default(autoincrement())
  email String  @unique
  name  String?
}

Enter fullscreen mode Exit fullscreen mode

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:

npx prisma migrate dev --name init

Enter fullscreen mode Exit fullscreen mode

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:

npx prisma migrate deploy

Enter fullscreen mode Exit fullscreen mode

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:

npx prisma migrate status

Enter fullscreen mode Exit fullscreen mode

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.

  1. Adicionar o campo ao modelo User no schema.prisma:

    model User {
      id        Int     @id @default(autoincrement())
      email     String  @unique
      name      String?
      birthdate DateTime?
    }
    
    
  2. Criar uma nova migration:

    npx prisma migrate dev --name add-birthdate-to-user
    
    
  3. 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.

  4. 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.

Speedy emails, satisfied customers

Postmark Image

Are delayed transactional emails costing you user satisfaction? Postmark delivers your emails almost instantly, keeping your customers happy and connected.

Sign up

Top comments (0)

Billboard image

The Next Generation Developer Platform

Coherence is the first Platform-as-a-Service you can control. Unlike "black-box" platforms that are opinionated about the infra you can deploy, Coherence is powered by CNC, the open-source IaC framework, which offers limitless customization.

Learn more

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay