migrate-mongo-ts is a database migration tool specifically designed for MongoDB within Node.js environments, providing robust TypeScript support. As a direct fork of the widely-used `migrate-mongo` package, it adapts its functionality for modern TypeScript workflows, ensuring type safety and improved developer experience when managing database schema changes. The current stable version is 1.2.3. This tool simplifies the process of evolving MongoDB schemas by enabling developers to define discrete 'up' and 'down' migration scripts, which are then applied and rolled back via a command-line interface. Key differentiators include its explicit focus on TypeScript for configuration and migration scripts, offering strong typing for the MongoDB `Db` and `MongoClient` objects passed into migration functions. It supports common operations such as project initialization, creating new migration files, applying pending migrations, rolling back the last migration, and checking migration status, making it a comprehensive solution for maintaining database consistency across various environments. Its release cadence typically mirrors updates from its upstream `migrate-mongo` parent, incorporating TypeScript-specific enhancements.
npm install migrate-mongo-tsVerified import paths — ran on the pinned version, not inferred.
Demonstrates the installation, project initialization, generated configuration, and a sample migration file structure using the CLI.
Review the GitHub repository for `migrate-mongo-ts` for specific differences or announcements compared to `migrate-mongo`.
Ensure `options: { useNewUrlParser: true }` is included in your `migrate-mongo-config.ts` file under the `mongodb` section.Always declare your `up` and `down` functions as `async` or ensure they explicitly return a Promise. For example: `export async function up(db: Db) { /* ... */ }`.Start your MongoDB server. Verify the `url` in `migrate-mongo-config.ts` matches your MongoDB instance's address and port.
Run `npm install -g migrate-mongo-ts` to install the CLI globally, or ensure `npm bin` is in your system's PATH.
Modify your migration function to be `async`: `export async function up(db: Db) { /* ... */ }`.