Saltar al contenido principal

Simulación de Migraciones y Reversiones

Traducción Beta No Oficial

Esta página fue traducida por PageTurner AI (beta). No está respaldada oficialmente por el proyecto. ¿Encontraste un error? Reportar problema →

También puedes simular la ejecución de una migración usando el flag --fake (-f como abreviación). Esto registrará la migración en la tabla de migraciones sin ejecutarla realmente. Es útil cuando:

  • Ya realizaste cambios manuales en la base de datos
  • Las migraciones se ejecutaron externamente (ej. otra herramienta)
  • Quieres mantener un historial de migraciones consistente
typeorm migration:run -d path-to-datasource-config --fake

También aplica para reversiones simuladas.

typeorm migration:revert -d path-to-datasource-config --fake

Modos de Transacción

Por defecto, TypeORM ejecuta todas las migraciones dentro de una única transacción global. Esto corresponde al flag --transaction all. Para mayor control, usa:

  • --transaction each: envuelve cada migración en su propia transacción
  • --transaction none: sin transacciones

Adicionalmente, puedes sobrescribir el comportamiento por migración configurando la propiedad transaction en MigrationInterface como true o false. Esto solo funciona en modos each o none.

import { MigrationInterface, QueryRunner } from "typeorm"

export class AddIndexTIMESTAMP implements MigrationInterface {
transaction = false

async up(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query(
`CREATE INDEX CONCURRENTLY post_names_idx ON post(name)`,
)
}

async down(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query(`DROP INDEX CONCURRENTLY post_names_idx`)
}
}