{"library":"migrate-mongo-ts","title":"TypeScript MongoDB Migration Tool","description":"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.","language":"javascript","status":"active","last_verified":"Wed Apr 22","install":{"commands":["npm install migrate-mongo-ts"],"cli":{"name":"migrate-mongo-ts","version":null}},"imports":["// migrate-mongo-config.ts\nexport default {\n  mongodb: { /* ... */ }\n};","import { Db } from 'mongodb';","export async function up(db: Db, client: MongoClient) { /* ... */ }"],"auth":{"required":false,"env_vars":[]},"quickstart":{"code":"import { Db, MongoClient } from 'mongodb';\n\n// 1. Install CLI: npm install -g migrate-mongo-ts\n// 2. Initialize project:\n// $ mkdir my-app-migrations\n// $ cd my-app-migrations\n// $ migrate-mongo-ts init\n\n// This is an example of the generated 'migrate-mongo-config.ts':\nexport default {\n  mongodb: {\n    url: process.env.MONGO_URL ?? \"mongodb://localhost:27017\",\n    databaseName: process.env.MONGO_DB_NAME ?? \"YOURDATABASENAME\",\n    options: {\n      useNewUrlParser: true\n    }\n  },\n  migrationsDir: \"migrations\",\n  changelogCollectionName: \"changelog\"\n};\n\n// 3. Create a new migration:\n// $ migrate-mongo-ts create initial_setup\n\n// This is an example of the generated migration file (e.g., 'migrations/20231027090000-initial_setup.ts'):\nexport async function up(db: Db, client: MongoClient) {\n  console.log('Running up migration: initial_setup');\n  await db.collection('settings').insertOne({ version: '1.0.0', initializedAt: new Date() });\n}\n\nexport async function down(db: Db, client: MongoClient) {\n  console.log('Running down migration: initial_setup');\n  await db.collection('settings').deleteOne({ version: '1.0.0' });\n}","lang":"typescript","description":"Demonstrates the installation, project initialization, generated configuration, and a sample migration file structure using the CLI.","tag":null,"tag_description":null,"last_tested":null,"results":[]},"compatibility":null}