Database-agnostic migration framework for TypeScript and JavaScript.
Works with any database — SQL, NoSQL, or custom. You control the database operations, MSR handles the migration workflow.
Library-first design — Returns structured results instead of calling process.exit(). Safe for production apps, web servers, and serverless functions.
Flexible rollback — Choose your strategy: automatic backup/restore, down() methods, both, or none.
const executor = new MigrationScriptExecutor(handler, config);
const result = await executor.up();
if (result.success) {
console.log(`Executed ${result.executed.length} migrations`);
}Photo by Logan Voss on Unsplash