npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

@leede/mongodb-migrate

v0.0.2

Published

Tool to migrate MongoDB data from one server to another without downtime

Downloads

6

Readme

mongodb-migrate

mongodb-migrate is a tool to migrate MongoDB data from one server to another without downtime using change streams. It works by executing a mongodump on the source database followed by a mongorestore on the destination database and then synchronizing further document insertions, updates, replacements and deletions. The watcher is set up before the initial execution mongodump so no changes will go missing.

Caveats:

  • change streams are only available for replica sets and sharded clusters (note that a standalone mongod instance can be converted to a replica set)
  • the tool uses mongodump and mongorestore executables which must be available in the system path
  • the tool only synchronizes one database, if you want to migrate multiple databases then run the tool multiple times in parallel or sequentially
  • collection indexes are synchronized after the intial mongorestore but indexes created in the source database afterwards are not synchronized

Usage

Install globally

npm i -g @leede/mongodb-migrate

The package provides a mongodb-migrate executable:

usage: mongodb-migrate [-h] -s SRC -d DST [-e EXCLUDE] [-w EXCLUDEWATCH]

MongoDB migration tool

optional arguments:
  -h, --help            show this help message and exit
  -s SRC, --src SRC     Source database uri, must include database name
  -d DST, --dst DST     Destination database uri, must include database name
  -e EXCLUDE, --exclude EXCLUDE
                        Exclude collections, separate collection names with comma to exclude multiple collections
  -w EXCLUDEWATCH, --excludeWatch EXCLUDEWATCH
                        Exclude collections from being watched for changes - only a snapshot for these will be copied and further changes
                        will not be synchronized, separate collection names with comma to exclude multiple collections

Example (note that specifying a database name is mandatory in both the src and dst connection uris):

mongodb-migrate --src mongodb://user:pass@some-mongodb-server/mydb --dst mongodb://user2:pass2@another-mongodb-server/mynewdb

Migration steps:

  1. Run mongodb-migrate
  2. Wait until the intial mongorestore is completed
  3. Change MongoDB connection uri in all your applications
  4. Watch the output of the tool until it reports that no more changes are being made in the source database
  5. Use Ctrl+C to stop mongodb-migrate when no more changes are anticipated in the source database