on-the-fly-schema Migration tool for MongoDB
Scala JavaScript Groovy Java CSS Python Shell
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
acceptance-tests
distribution-template
gradle/wrapper
setup-env
src
tools-config
.gitignore
AppConfig.groovy
LICENSE.txt
README.md
build.gradle
gradlew
gradlew.bat

README.md

Midas

On-the-fly Schema Migration Tool for MongoDB

Overview

Currently, applications have to hand-roll their own schema migration infrastructure or use some third-party tool It is difficult to migrate TBs of data without downtime (unacceptable from SLA stand-point!). This is where Midas fills the gap.

It intercepts responses at MongoDB Protocol level and upgrades or downgrades document schema in-transit. As Midas works at protocol level, it is agnostic of Language specific MongoDB drivers (Ruby, Python, C# and Java drivers) and their versions within those languages

Further, Midas is Agnostic of the MongoDB configurations like Standalone, Replica Sets, Sharded environments.

Documentation

  • Download Midas Overview and Guide.
  • Midas Command Reference
  • Additionally, as a part of distribution, you can refer to the ReadMe.txt and have executable specifications that double up as documentation simultaneously. User journeys therein will help you gain better understanding when using Midas.

Binary Distributions

Please download the binaries from here

Build Info

We are using Gradle 1.8 for our builds. Please do not checkin Eclipse or Intellij or any IDE specific files.
For Idea or Eclipse they can be generated using

  • gradlew eclipse
  • gradlew idea

Note: Eclipse IDE might show the following error for groovy files: "Error compiling Groovy project. Either the Groovy-JDT patch is not installed or JavaBuilder is not being used." This is because groovy plugin for eclipse needs JavaBuilder but doesn't understand ScalaBuilder.

Project Versioning

We will be following JBoss Versioning Convention

  • major.minor.micro.Alpha[n]
  • major.minor.micro.Beta[n]
  • major.minor.micro.CR[n] Please refer to AppConfig.groovy - a single place of change for all the project configuration changes

License

Midas is licensed under the terms of the FreeBSD License