DEV Community

Leandro Martins
Leandro Martins

Posted on

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.

Top comments (0)