Skip to content

simagix/hummingbird

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

37 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

The Hummingbird Project

As a result of "losing" my MongoPush source code, I rewrote it but on a smaller scale. I couldn't get much meaningful help in my previous close source project. To support many use cases is too big an effort for a person to take on, especially the oplogs streaming part which is in fact a reverse engineering of replication. I still think it is a great idea and many can benefit from it. So, here you go, an open source project. Contributions are welcome.

The idea of the repository name was from the movie The Hummingbird Project (2018). The world can use good ideas. Birds can't fly over the ocean, not because they lack courage, but because there is no one waiting on the other side.

Quick Start

Configuration File Example

{
  "command": "all",
  "drop": true,
  "source": "mongodb://user:password@[email protected]/?compressors=zstd,snappy&readPreference=secondaryPreferred",
  "target": "mongodb srv://user:[email protected]/?compressors=zstd,snappy&w=2&retryWrites=true",
  "license": "Apache-2.0"
}

Start Migration

  • Start neutrino
go run main/hummingbird.go -start configuration.json
  • Add Additional Workers
go run main/hummingbird.go -worker configuration.json

Progress Monitoring

http://localhost:3629

Build

./build.sh

Download

./scripts/download-from-docker.sh

Configurations

{
  "block": 10000,
  "command": "all|config|index|data|data-only",
  "drop": false,
  "includes": [
    {
      "namespace": "database.collection",
      "filter": {},
      "to": "database.collection",
      "limit": 0,
      "masks": ["field"],
      "method": "default|hex|partial"
    }
  ],
  "license": "Apache-2.0",
  "port": 3629,
  "source": "mongodb://[user:XXXXXX@]host[:port][/[db][?options]]",
  "spool": "./spool",
  "target": "mongodb srv://user:XXXXXX@host[/[db][?options]]",
  "verbose": false,
  "workers": 8,
  "yes": false
}

License

Apache-2.0 License

About

MongoDB database migration

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages