Is a simplistic mongoose library to manage database migrations.
npm install migry
- node.js 8.x+
- Create a folder
migrations/
in your project or you can use the./node_modules/.bin/migry init
command - Add a config file
migrations/config.json
// migrations/config.json
{
"local": {
"uri": "mongodb://localhost:27017/db-name",
"options": {}
},
"preprod": {
"uri": "mongodb://<username>:<password>@<preprod-mongohost>:<port>/db-name",
"options": {
"ca_certificate_base64": "<the base64 certificate for connection>"
}
}
}
- You can use the library:
> ./node_modules/.bin/migry
Usage: migry [options] [command]
Commands:
list list existing migration files
init init the migration folder with the config.json file
create <name> create a new migration
run [name] run updates to latest or specified [name]
- Init the migration folder
> ./node_modules/.bin/migry init
migrations/config.json file was successfully created⏎
- Create a new migration
> ./node_modules/.bin/migry add-users
1513353185076-add-users.js - was created⏎
// migrations/1513353185076-add-users.js
const User = require('../models/user.model');
// you can use all your mongoose models
async function migrate() {
const users = await User.find({});
// do your logic
return;
}
module.exports = migrate;
- List existing migrations
> ./node_modules/.bin/migry list
1511163445408-ich.js
1511163447619-ni.js
1511163449369-san.js
1511163451497-shi.js
1511163453742-roku.js
1513353185076-add-users.js
- Run specific migration
> ./node_modules/.bin/migry run add-users
1513353185076-add-users.js - migrated OK
- Run all migrations
> ./node_modules/.bin/migry run
- Run migrations on specific environment
> ./node_modules/.bin/migry run --env prod