• Jobs
  • About Us
  • professionals
    • Home
    • Jobs
    • Courses and challenges
  • business
    • Home
    • Post vacancy
    • Our process
    • Pricing
    • Assessments
    • Payroll
    • Blog
    • Sales
    • Salary Calculator

0

970
Views
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; }
about 3 years ago · Santiago Trujillo
2 answers
Answer question

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.

about 3 years ago · Santiago Trujillo Report

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,
about 3 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Our process Sales
Legal
Terms and conditions Privacy policy
© 2025 PeakU Inc. All Rights Reserved.

Andres GPT

Recommend me some offers
I have an error