Pular para o conteúdo
Skillpedia
Bancos de dados48 mil · #2718

database-migration

Faz seu agente mover dados entre diferentes sistemas de banco de dados. Ajuda a garantir que a mudança seja feita sem perder informações e com segurança.

O que ela faz

Esta ferramenta ajuda a gerenciar mudanças em bancos de dados. Ela permite atualizar a estrutura e os dados do seu banco de dados de forma segura, mesmo quando você muda de sistema de gerenciamento de banco de dados (ORM) ou precisa fazer atualizações sem interromper o serviço.

Quando usar

  • ✓Quando você precisa mudar de um sistema de banco de dados para outro.
  • ✓Ao atualizar a estrutura do seu banco de dados (adicionar, remover ou modificar tabelas/colunas).
  • ✓Para mover ou transformar dados entre bancos de dados.

Exemplo do que pedir para a IA

“Como posso migrar meu banco de dados de Sequelize para TypeORM, garantindo que os dados sejam transferidos corretamente e que o serviço não pare?”

Quer saber mais? Abra as seções abaixo.

Como usar

O jeito mais fácil: copie a mensagem abaixo e cole no Claude, ChatGPT, Cursor ou outra IA. Ela lê a skill e segue as instruções.

Link da skill

https://github.com/sickn33/agentic-awesome-skills/blob/main/plugins/agentic-awesome-skills-claude/skills/database-migration/SKILL.md

Mensagem pronta para colar

Use esta skill para me ajudar: https://github.com/sickn33/agentic-awesome-skills/blob/main/plugins/agentic-awesome-skills-claude/skills/database-migration/SKILL.md Leia o arquivo SKILL.md desse link e siga as instruções dele na minha tarefa.
Como funciona

A ferramenta guia você através do processo de criação de scripts que alteram o banco de dados. Ela também oferece estratégias para reverter mudanças caso algo dê errado e para realizar atualizações sem que o sistema fique indisponível.

Instalação

Jeito mais fácil: copie o link da skill e cole no Claude, ChatGPT ou Cursor pedindo para seguir as instruções.

No terminal (Claude Code, Codex, Cursor), na pasta do projeto:

npx skills add sickn33/agentic-awesome-skills --skill database-migration

Ou baixe só o arquivo:

curl -L https://raw.githubusercontent.com/sickn33/agentic-awesome-skills/main/plugins/agentic-awesome-skills-claude/skills/database-migration/SKILL.md -o SKILL.md
Conteúdo técnico (SKILL.md)

Tradução do texto original do autor no GitHub. Os comandos e códigos estão como no original.

Disponibilidade de material de suporte

Esta cópia do catálogo contém as orientações inline abaixo, mas não inclui os seguintes caminhos de suporte. Eles são pré-requisitos externos, não arquivos empacotados:

  • <support-root>/references/orm-switching.md
  • <support-root>/references/schema-migration.md
  • <support-root>/references/data-transformation.md
  • <support-root>/references/rollback-strategies.md
  • <support-root>/assets/schema-migration-template.sql
  • <support-root>/assets/data-migration-script.py
  • <support-root>/scripts/test-migration.sh

Solicite o material de suporte original ou uma instalação existente antes de usar uma etapa que dependa desses caminhos; este catálogo não identifica uma fonte de download verificada para eles. Resolva cada caminho em relação a essa instalação, inspecione seu conteúdo e verifique quaisquer licenças aplicáveis e pré-requisitos de execução. Não execute um comando nem afirme que um procedimento referenciado foi seguido até que seu arquivo necessário exista. Não fabrique os scripts ausentes nem trate um arquivo não relacionado com o mesmo nome como equivalente. Etapas independentes totalmente documentadas aqui podem prosseguir dentro do escopo autorizado do usuário; relate qualquer etapa dependente como indisponível.

Migração de Banco de Dados

Esquema mestre de banco de dados e migrações de dados entre ORMs (Sequelize, TypeORM, Prisma), incluindo estratégias de rollback e implantações sem tempo de inatividade.

Não use esta habilidade quando

  • A tarefa não estiver relacionada à migração de banco de dados
  • Você precisar de um domínio ou ferramenta diferente fora deste escopo

Instruções

  • Esclareça objetivos, restrições e entradas necessárias.
  • Aplique as melhores práticas relevantes e valide os resultados.
  • Forneça etapas acionáveis e verificação.

Use esta habilidade quando

  • Migrando entre diferentes ORMs
  • Realizando transformações de esquema
  • Movendo dados entre bancos de dados
  • Implementando procedimentos de rollback
  • Implantações sem tempo de inatividade
  • Atualizações de versão de banco de dados
  • Refatoração de modelo de dados

Migrações de ORM

Migrações Sequelize

// migrations/20231201-create-users.js
module.exports = {
  up: async (queryInterface, Sequelize) => {
    await queryInterface.createTable('users', {
      id: {
        type: Sequelize.INTEGER,
        primaryKey: true,
        autoIncrement: true
      },
      email: {
        type: Sequelize.STRING,
        unique: true,
        allowNull: false
      },
      createdAt: Sequelize.DATE,
      updatedAt: Sequelize.DATE
    });
  },

  down: async (queryInterface, Sequelize) => {
    await queryInterface.dropTable('users');
  }
};

// Run: npx sequelize-cli db:migrate
// Rollback: npx sequelize-cli db:migrate:undo

Migrações TypeORM

// migrations/1701234567-CreateUsers.ts
import { MigrationInterface, QueryRunner, Table } from 'typeorm';

export class CreateUsers1701234567 implements MigrationInterface {
  public async up(queryRunner: QueryRunner): Promise<void> {
    await queryRunner.createTable(
      new Table({
        name: 'users',
        columns: [
          {
            name: 'id',
            type: 'int',
            isPrimary: true,
            isGenerated: true,
            generationStrategy: 'increment'
          },
          {
            name: 'email',
            type: 'varchar',
            isUnique: true
          },
          {
            name: 'created_at',
            type: 'timestamp',
            default: 'CURRENT_TIMESTAMP'
          }
        ]
      })
    );
  }

  public async down(queryRunner: QueryRunner): Promise<void> {
    await queryRunner.dropTable('users');
  }
}

// Run: npm run typeorm migration:run
// Rollback: npm run typeorm migration:revert

Migrações Prisma

// schema.prisma
model User {
  id        Int      @id @default(autoincrement())
  email     String   @unique
  createdAt DateTime @default(now())
}

// Generate migration: npx prisma migrate dev --name create_users
// Apply: npx prisma migrate deploy

Transformações de Esquema

Adicionando Colunas com Valores Padrão

// Safe migration: add column with default
module.exports = {
  up: async (queryInterface, Sequelize) => {
    await queryInterface.addColumn('users', 'status', {
      type: Sequelize.STRING,
      defaultValue: 'active',
      allowNull: false
    });
  },

  down: async (queryInterface) => {
    await queryInterface.removeColumn('users', 'status');
  }
};

Renomeando Colunas (Sem Tempo de Inatividade)

// Passo 1: Adicionar nova coluna
module.exports = {
  up: async (queryInterface, Sequelize) => {

…
Perguntas frequentes

O que é um ORM?

ORM significa 'Object-Relational Mapping'. É uma técnica que permite que você interaja com seu banco de dados usando a linguagem de programação que você já conhece, em vez de escrever comandos SQL diretamente.

O que é 'zero-downtime deployment'?

É uma estratégia para atualizar um sistema ou banco de dados sem que ele fique fora do ar para os usuários. O objetivo é que a transição seja tão suave que ninguém perceba.

O que é 'rollback'?

Rollback é o processo de desfazer uma mudança que foi aplicada. Se uma atualização no banco de dados causar problemas, o rollback permite voltar para o estado anterior, como se a atualização nunca tivesse acontecido.

Detalhes

Descrição original do autor

Master database schema and data migrations across ORMs (Sequelize, TypeORM, Prisma), including rollback strategies and zero-downtime deployments.

repo: sickn33/agentic-awesome-skills

Popularidade

Estrelas no GitHub
48 mil
Posição no ranking
#2718
Licença
MIT
Atualizada em
15/10/2026

Essa skill é útil?

0

Entre para votar.

Comentários

  • …

Mais skills deste repositório

Skills parecidas