db-mongo-migration
v1.11.1
Published
Migration tool for MongoDB
Downloads
312
Maintainers
Readme
Db-Mongo-Migration
A command-line tool for running and managing MongoDB migrations.
Installation
To install Db-Mongo-Migration, run the following command:
npm i db-mongo-migration
CLI Usage
__ __ __ __ _ _
| \/ | ___ _ __ __ _ ___ | \/ (_) __ _ _ __ __ _| |_ ___
| |\/| |/ _ \| '_ \ / _` |/ _ \ _____| |\/| | |/ _` | '__/ _` | __/ _ \
| | | | (_) | | | | (_| | (_) |_____| | | | | (_| | | | (_| | || __/
|_| |_|\___/|_| |_|\__, |\___/ |_| |_|_|\__, |_| \__,_|\__\___|
|___/ |___/
Usage: mongo-migration [options] [command]
Options:
-V, --version output the version number
-h, --help display help for command
Commands:
init Initialize migration config
create [name] Create a migration
status Get migration status
up [options] Run migration
down [options] Rollback migrations
help [command] display help for command
Basic Usage
Initialize Migration Config
To initialize the migration config, run the following command:
npx mongo-migrate init
This will create a migration-config.yaml
file in the current directory.
db-connection:
url: ${URL}
databaseName: ${DATABASE_NAME}
options:
useNewUrlParser: true
useUnifiedTopology: true
migrationsDir: migrations
changelogCollectionName: migrations
projectName: YOUR-PROJECT-NAME
useDefaultTransaction: true
You can use .env
to auto populate the environment variables
Create a Migration
To create a new migration, run the following command:
npx mongo-migrate create [name]
Replace [name]
with the name of your migration. This will create a new migration file in the migrations
directory.
Options
-n, -native
: Create migration file for native Mongo DB operation (WIP).
Without option -n, it will create a file with following content:
import { IMigration, DB } from "db-mongo-migration"
class Migration implements IMigration {
/**
* Run the migrations.
*/
async up(db: DB) {
// YOUR CODE HERE
}
/**
* Reverse the migrations.
*/
async down(db: DB) {
// YOUR CODE HERE
}
}
export default Migration;
import { INativeMigration, DbSessionHelper, MongoClient } from "db-mongo-migration"
import { Db } from 'mongodb';
class NativeMigration implements INativeMigration {
/**
* Run the migrations.
*/
async up(db: Db, client: MongoClient) {
return await handleDbTransaction(client, async session => {
// YOUR CODE HERE
});
}
/**
* Reverse the migrations.
*/
async down(db: Db, client: MongoClient) {
// YOUR CODE HERE
}
}
export default NativeMigration;
Get Migration Status
To get the status of your migrations, run the following command:
npx mongo-migrate status
This will display a table showing the status of each migration.
Run Migrations
To run your migrations, run the following command:
npx mongo-migrate up
This will run all pending migrations.
Options
-f, -file <filename>
: Run migration for a specific file.-d, --dry-run
: Run migration with a dry run.
Rollback Migrations
To rollback your migrations, run the following command:
npx mongo-migrate down
This will rollback the last batch of migrations.
Options
-f, -file <filename>
: Run rollback for a specific file.-r, -reset
: Reset the migration.-d, --dry-run
: Run migration rollback with a dry run.-b, --batch <number>
: Number of batch to rollback.-s, --steps <number>
: Number of steps to rollback.
License
This project is licensed under the MIT License - see the LICENSE file for details.