A storage-agnostic migration runner (v2.4.0) that allows you to run scripts (e.g., database migrations) exactly once. Unlike most migration tools tied to specific databases, Abstract Migrate lets you write your own storage engine (filesystem, PostgreSQL, etc.) by implementing five simple functions: load, add, remove, acquireLock, and releaseLock. It provides a CLI (`am`) for creating, listing, and running migrations. Release cadence is irregular; latest version is from 2019. Differentiators: lock-based concurrency safety, callback/promise engine interface, JSON config file.
npm install abstract-migrateNo compatibility data collected yet for this library.
Verified import paths — ran on the pinned version, not inferred.
Global install, configuration, custom engine implementation, migration creation, and running all pending migrations.
Use a database-level advisory lock or file locking to ensure only one process acquires the lock at a time.
Ensure engines either return a promise OR call the callback (not both).
Use --ignore-past or -p as documented; no replacement announced yet.
Create the migrations directory before running commands: mkdir -p migrations
Use an absolute path or ensure the path is relative to where you run the command.
Rename engine file to .cjs or use dynamic import() inside the engine.
Use timestamps or UUIDs in migration filenames to ensure uniqueness.