Skip to content

@iamcalegari/mongoat / revertMigration

Function: revertMigration()

revertMigration(database, version, config): Promise<void>

Defined in: src/migrate/runner.ts:589

Reverts a single applied migration via its down(ctx) export, removing its record from the control collection on success.

A migration with no down export is irreversible by design: this is checked BEFORE the control collection or the database connection is ever touched (guard-precondition-first) — revertMigration throws MIGRATION_IRREVERSIBLE purely from the on-disk module shape.

Acquires the same exclusive run lock as runMigrations/runTo once every precondition above has cleared, and releases it once the revert finishes (successfully or on failure).

Parameters

database

Database

A Database instance (only required to be connected if the target migration turns out to be reversible).

version

string

The version to revert, YYYYMMDDHHMMSS.

config

MigrateConfig

Migration directory, control collection name, the allowNoTransaction opt-in, and an optional lockTtlMs.

Returns

Promise<void>

Throws

MIGRATION_NOT_FOUND when no migration file exists for version, or when it is not currently recorded as applied.

Throws

MIGRATION_IRREVERSIBLE when the migration has no down export.