Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

1.1K
Vistas
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 Respuestas
Responde la pregunta

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 Denunciar

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 Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda