Zum Hauptinhalt springen

Gefälschte Migrationen und Rollbacks

Inoffizielle Beta-Übersetzung

Diese Seite wurde von PageTurner AI übersetzt (Beta). Nicht offiziell vom Projekt unterstützt. Fehler gefunden? Problem melden →

Sie können Migrationen auch gefälscht ausführen, indem Sie das Flag --fake verwenden (Abkürzung -f). Dadurch wird die Migration der Migrationstabelle hinzugefügt, ohne sie tatsächlich auszuführen. Dies ist nützlich für Migrationen, die erstellt wurden, nachdem manuelle Änderungen bereits an der Datenbank vorgenommen wurden oder wenn Migrationen extern ausgeführt wurden (z.B. durch ein anderes Tool oder eine Anwendung). Sie können so trotzdem einen konsistenten Migrationsverlauf beibehalten.

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

Dies ist auch bei Rollbacks möglich.

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

Transaktionsmodi

Standardmäßig führt TypeORM alle Ihre Migrationen innerhalb einer einzigen umfassenden Transaktion aus. Dies entspricht dem Flag --transaction all. Wenn Sie eine feinere Transaktionskontrolle benötigen, können Sie das Flag --transaction each verwenden, um jede Migration individuell zu kapseln, oder das Flag --transaction none, um auf die Transaktionskapselung komplett zu verzichten.

Zusätzlich zu diesen Flags können Sie das Transaktionsverhalten auch migrationsspezifisch überschreiben, indem Sie die Eigenschaft transaction in der MigrationInterface auf true oder false setzen. Dies funktioniert nur im Modus each oder 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`)
}
}