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.
{
"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 neutrino
go run main/hummingbird.go -start configuration.json
- Add Additional Workers
go run main/hummingbird.go -worker configuration.json
./build.sh
./scripts/download-from-docker.sh
{
"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
}