1001Ferramentas
🟪Dev

Gerador TypeORM Init

Gere um data-source.ts inicial do TypeORM com conexão PostgreSQL pronta, em TypeScript. Copie o arquivo e comece a usar entidades e migrations no seu projeto.



  

Data source do TypeORM ligado ao Postgres

O TypeORM exige um DataSource montado antes de qualquer entidade servir para alguma coisa. É ali que ficam host, porta, a flag synchronize e os globs de entities e migrations, e errar qualquer um desses gera erro de conexão com cara de problema de banco, quando é só configuração. Esta página entrega um data-source.ts inicial para Postgres lendo tudo de variáveis de ambiente.

A saída é fixa e não há formulário: uma função devolve o mesmo texto sempre, já renderizado quando a página abre. Cada campo tem fallback, então DB_HOST vira localhost, DB_PORT vira 5432 e DB_NAME vira app, e dá para rodar local sem .env nenhum. O synchronize: false é escolha deliberada; com true, o TypeORM reescreve o schema a cada boot, o que serve para rascunho e é perigoso em produção.

Depois de colar, confira três coisas. O tsconfig precisa de experimentalDecorators e emitDecoratorMetadata, senão as entidades nem compilam. Os globs apontam para src/entities/*.ts, então, quando o tsc gerar a pasta dist, você tem que apontar para dist/entities/*.js. E o data source não conecta sozinho: chame AppDataSource.initialize() no bootstrap e trate a promise. A geração acontece inteira no seu navegador.

Perguntas frequentes

Dá para gerar a versão MySQL ou SQLite?
Pela página, não: o type sai fixo como postgres. É uma linha para trocar, mais o driver correspondente no package.json.
Por que as minhas entidades não são encontradas em produção?
Porque os globs ainda apontam para arquivos .ts. Depois do build TypeScript, mire em dist/entities/*.js ou importe as classes direto no array entities.
Preciso mesmo do import 'reflect-metadata'?
Sim, e ele tem que rodar antes de qualquer entidade ser carregada. É esse import que permite ao TypeORM ler os decorators.

Ferramentas Relacionadas