npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

typeorm-migration-helper

v1.0.2

Published

Um CLI simples e poderoso para facilitar a criação, execução e reversão de migrations com TypeORM. Foco em produtividade, clareza e uma UX amigável.

Readme

TypeORM Migration Helper

NPM version License: MIT

Um CLI simples e poderoso para facilitar a criação, execução e reversão de migrations com TypeORM. Foco em produtividade, clareza e uma experiência de desenvolvimento amigável.

✨ Visão Geral

Gerenciar migrations no TypeORM pode se tornar repetitivo. O typeorm-migration-helper surge como uma ferramenta de linha de comando (CLI) para simplificar essas tarefas comuns, permitindo que você se concentre no que realmente importa: o código da sua aplicação.

Este helper encapsula os comandos migration:generate, migration:run e migration:revert do TypeORM, oferecendo uma interface mais direta e com mensagens claras.

🚀 Funcionalidades Principais

  • Geração Simplificada: Crie novas migrations com um único comando, baseado nas alterações das suas entidades.
  • Execução Direta: Aplique todas as migrations pendentes rapidamente.
  • Reversão Fácil: Desfaça a última migration aplicada com facilidade.
  • Configuração Flexível: Especifique caminhos personalizados para seu arquivo de DataSource e diretório de migrations.
  • Feedback Claro: Mensagens informativas e spinners visuais para acompanhar o progresso.

📦 Instalação

Instale o pacote como uma dependência de desenvolvimento no seu projeto TypeORM:

npm install --save-dev typeorm-migration-helper
# ou
yarn add --dev typeorm-migration-helper
# ou
pnpm add --save-dev typeorm-migration-helper

Pré-requisitos:

Seu projeto precisa ter as seguintes dependências instaladas:

  • typeorm: A biblioteca principal.
  • reflect-metadata: Requerido pelo TypeORM.
  • ts-node: Essencial para que o TypeORM CLI (usado internamente pelo helper) possa ler seu arquivo data-source.ts.
  • Driver do seu Banco de Dados: (ex: pg, mysql2, sqlite3, etc.)

Se ainda não os tiver, instale-os:

npm install --save-dev typeorm reflect-metadata ts-node <seu-driver-db>
# Exemplo com SQLite:
npm install --save-dev typeorm reflect-metadata ts-node sqlite3

⚙️ Configuração

O helper espera encontrar seu arquivo de configuração do TypeORM DataSource em ./src/config/data-source.ts por padrão. Certifique-se de que este arquivo exporta uma instância do DataSource.

Exemplo (./src/config/data-source.ts):

import "reflect-metadata";
import { DataSource } from "typeorm";
// Importe suas entidades aqui
// import { User } from '../entity/User';

export const AppDataSource = new DataSource({
    type: "sqlite", // ou "postgres", "mysql", etc.
    database: "database.sqlite", // ou configurações de conexão
    synchronize: false, // NUNCA use true em produção
    logging: false,
    entities: [], // Adicione suas entidades aqui: [User, Product, ...]
    migrations: ["src/migrations/*.ts"], // Caminho padrão para migrations
    subscribers: [],
});

[!IMPORTANT] O array entities deve conter todas as suas entidades para que o comando generate funcione corretamente.
O caminho em migrations deve corresponder ao local onde suas migrations serão salvas (o padrão do helper é ./src/migrations).

🛠️ Uso

Execute os comandos no terminal, na raiz do seu projeto.

Gerar uma Nova Migration (generate)

Cria um novo arquivo de migration baseado nas diferenças entre suas entidades (definidas no DataSource) e o esquema atual do banco de dados.

npx typeorm-migration-helper generate <NomeDaMigration>

# ou

npx tmh generate <NomeDaMigration>
  • <NomeDaMigration>: Um nome descritivo em CamelCase (ex: CreateUserTable, AddEmailToUser).

[!NOTE] Se não houver alterações detectadas nas entidades, o comando informará que nenhuma migration pode ser gerada.

Opções:

  • -m, --migrationsDir <dir>: Especifica um diretório diferente para salvar as migrations (padrão: ./src/migrations).
  • -d, --dataSource <file>: Especifica um caminho diferente para o arquivo DataSource (padrão: ./src/config/data-source.ts).
# Exemplo com opções
npx typeorm-migration-helper generate AddUserRole -m ./db/migrations -d ./src/db-config.ts

# ou

npx tmh generate generate AddUserRole -m ./db/migrations -d ./src/db-config.ts

Executar Migrations Pendentes (run)

Aplica todas as migrations que ainda não foram executadas no banco de dados.

npx typeorm-migration-helper run

# ou

npx tmh run

Opções:

  • -d, --dataSource <file>: Especifica um caminho diferente para o arquivo DataSource.
# Exemplo com opção
npx typeorm-migration-helper run -d ./src/db-config.ts

# ou

npx tmh run -d ./src/db-config.ts

Reverter a Última Migration (revert)

Desfaz a última migration que foi aplicada com sucesso.

npx typeorm-migration-helper revert

# ou

npx tmh revert

Opções:

  • -d, --dataSource <file>: Especifica um caminho diferente para o arquivo DataSource.
# Exemplo com opção
npx typeorm-migration-helper revert -d ./src/db-config.ts

# ou

npx tmh revert -d ./src/db-config.ts

🤔 Solução de Problemas

  • Erro Cannot find module 'ts-node': Instale ts-node como dependência de desenvolvimento: npm install --save-dev ts-node.
  • Erro Unable to open file: ... data-source.ts: Verifique se o caminho para o DataSource está correto (use a opção -d se necessário) e se o arquivo não contém erros de sintaxe TypeScript.
  • No changes in database schema were found ao usar generate: Certifique-se de que você definiu entidades no array entities do seu DataSource e que existem alterações nessas entidades que ainda não foram migradas.

🤝 Contribuindo

Contribuições são super bem-vindas! 🚀

Se você encontrou um bug, tem uma sugestão de melhoria ou quer adicionar uma nova funcionalidade, sinta-se à vontade para colaborar.

Como contribuir:

  1. Dê uma olhada nas issues abertas — talvez você encontre algo legal pra começar.
  2. Abra uma nova issue se quiser discutir uma ideia ou reportar um problema.
  3. Fork o repositório, crie um branch com sua melhoria (git checkout -b minha-feature) e envie um pull request.
  4. Sempre que possível, inclua testes e atualize a documentação relacionada.

📄 Licença

Este projeto é licenciado sob a Licença MIT. Veja o arquivo LICENSE para mais detalhes.