Simulazione di Migrazioni e Rollback
Questa pagina è stata tradotta da PageTurner AI (beta). Non ufficialmente approvata dal progetto. Hai trovato un errore? Segnala problema →
Puoi simulare l'esecuzione di una migrazione usando il flag --fake (-f in forma abbreviata). Questo aggiungerà la migrazione
alla tabella delle migrazioni senza eseguirla. È utile per migrazioni create dopo modifiche manuali
già apportate al database o quando migrazioni sono state eseguite esternamente
(ad esempio da un altro strumento o applicazione), e desideri comunque mantenere una cronologia delle migrazioni coerente.
typeorm migration:run -d path-to-datasource-config --fake
Questo è possibile anche con i rollback.
typeorm migration:revert -d path-to-datasource-config --fake
Modalità di transazione
Per impostazione predefinita, TypeORM eseguirà tutte le migrazioni all'interno di un'unica transazione che le racchiude.
Questo corrisponde al flag --transaction all.
Se necessiti un controllo più granulare sulle transazioni, puoi usare il flag --transaction each per racchiudere ogni migrazione individualmente, o il flag --transaction none per non racchiudere affatto le migrazioni in transazioni.
Oltre a questi flag, puoi sovrascrivere il comportamento della transazione per singola migrazione impostando la proprietà transaction su MigrationInterface a true o false. Questo funziona solo nelle modalità di transazione 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`)
}
}