{"repo":"rebus-org/Mongrow","free":true,"listed":false,"github":"https://github.com/rebus-org/Mongrow","clone":"git clone https://github.com/rebus-org/Mongrow.git","description":":herb: MongoDB migration library","language":"C#","stars":12,"topics":["mongodb","mongo","mongodb-database","migration","migrations","migration-tool","migrate-database","migrator","evolutionary-database-design"],"license":null,"category":"databases-storage","readme_excerpt":"Mongrow It's a MongoDB migration helper. With this, you can write classes that implement steps to migrate a MongoDB database. What do steps look like? Like this: and then you execute it like this: How to make robust steps While steps are just C# code, and you can do anything you want in there to the passed-in IMongoDatabase , you are encouraged to write steps that do not change along with the rest of your code. This means that you most likely want to use BsonDocument , magic strings, and anonymous types throughout. Wouldn't want a rename of one of your C# classes to mess up how all of your existing migrations work. Parallel execution A distributed lock is used to coordinate execution, so Mongrow will never execute migrations concurrently. How to number the steps Steps are identified by a number and a \"branch specification\". The branch specification allows for co-existence of steps with the same number, thus escaping a global lock on the number sequence when working with multiple branches. The branch specification defaults to master . You are encouraged to structure your steps like this: and so forth. PLEASE NOTE: You are not allowed to INSERT a step into the sequence, so if step number n with any branch specification has been executed, you will get an exception if you add a migration with number < n for that branch specification.","default_branch":null,"files":null,"tree":[],"storefront":"/r/rebus-org","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/rebus-org/Mongrow/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}