Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

327
Visualizações
Typeorm - migraciones basadas en entidades

Así que estoy usando typeorm con ormconfig.json. Dado que synchronize no se puede usar en producción, ¿cómo puedo ejecutar las migraciones basadas en entidades?

mi archivo ormconfig.json

 { "type": "postgres", "host": "localhost", "port": 5432, "username": "", "password": "", "database": "backend-api", "synchronize": false, "logging": true, "migrationsRun": true, "entities": ["dist/entity/**/*.js"], "migrations": ["dist/migration/**/*.js"], "subscribers": ["dist/subscriber/**/*.js"], "cli": { "entitiesDir": "src/entity", "migrationsDir": "src/migration", "subscribersDir": "src/subscriber" } }

También aquí está mi único archivo de entidad Todo.ts

 import { BaseEntity, Column, CreateDateColumn, Entity, PrimaryGeneratedColumn, UpdateDateColumn, } from 'typeorm'; @Entity() export class Todo extends BaseEntity { @PrimaryGeneratedColumn() id: number; @Column('text') text: string; @Column('boolean', { default: false }) completed: boolean; @CreateDateColumn() createdAt: Date; @UpdateDateColumn() updatedAt: Date; }
over 4 years ago · Santiago Trujillo
2 Respostas
Responde à pergunta

0

Tengo la solución para este problema.

Así que mi ormconfig.json necesitaba una pequeña actualización,

 { "type": "postgres", "host": "localhost", "port": 5432, "username": "", "password": "", "database": "backend-api", "synchronize": false, "logging": true, "migrationsRun": false, "entities": ["src/entity/**/*.ts"], "migrations": ["src/migration/**/*.ts"], "subscribers": ["src/subscriber/**/*.ts"], "cli": { "entitiesDir": "src/entity", "migrationsDir": "src/migration", "subscribersDir": "src/subscriber" } }

y necesitaba instalar ts-node para compilar la entidad ts y los archivos de migración.

Creé los scripts mencionados a continuación:

 "scripts": { "start": "ts-node src/index.ts", "entity:create": "./node_modules/.bin/ts-node ./node_modules/.bin/typeorm entity:create -n", "migrate:generate": "./node_modules/.bin/ts-node ./node_modules/.bin/typeorm migration:generate -n", "migrate:run": "./node_modules/.bin/ts-node ./node_modules/.bin/typeorm migration:run", "migrate:revert": "./node_modules/.bin/ts-node ./node_modules/.bin/typeorm migration:revert", "schema:drop": "./node_modules/.bin/ts-node ./node_modules/.bin/typeorm schema:drop" }

y en el orden del guión. Lo único que aprendí es que no puede simplemente crear un archivo de entidad y ejecutar migration:generate en él. Primero debe crear una entidad basada en typeorm cli. No sé por qué, pero para mí, una vez que comencé a crear la entidad usando la CLI, todo cayó en su lugar.

over 4 years ago · Santiago Trujillo Relatório

0

Para ejecutar las migraciones basadas en entidades , puede generar los archivos de migraciones de sus entidades como se indica en la documentación de TypeOrm sobre la generación de migraciones .

TypeORM puede generar automáticamente archivos de migración con los cambios de esquema que haya realizado.

Ejecute este comando especificando el nombre de la migración para generar el archivo:

 typeorm migration:generate -n <MigrationName>

Después de eso, solo necesita ejecutar sus migraciones usando la CLI:

 typeorm migration:run

Una buena práctica es usar el parámetro migrationsRun en la configuración de su base de datos para ejecutar sus migraciones al inicio:

 migrationsRun: true,
over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda