node-migrate-mongo-orzfly v1.6.0
node-migrate-mongo
Migrations for MongoDB
node-migrate-mongo enables data migrations in your existing project. The state of your migrations is stored in the database specified in the mongo property of your Migratefile.coffee. By default, this collection is called migration_versions. See the Usage section (and let's be honest: the code) for more information.
Despite the name, this module does not borrow from TJ's node-migrate, though it follows very similar conventions.
Usage
In your existing project where you'd like to have migrations:
npm install --save node-migrate-mongo
cat << EOF- > Migratefile.coffee
module.exports =
mongo: 'mongodb://localhost/your_db'
EOF
migrate generate --name my_first_migration
# edit it
migrate allMigratefile Options
- beforeTest -- An async function called before running a migration test. By default sets
NODE_ENV=test. - before -- An async function called before running a command. Useful for connecting your app to its database.
- after -- An async function called after running a command.
- afterTest -- An async function called after running a migration test.
- mongo -- A string or function that returns a mongo connection string.
- model -- A reference to your custom
MigrationVersionmodel. - path -- The place to store your migration files. Defaults to
migrations. - ext -- The extension for your migration files. Defaults to
coffee. - template -- The template used when generating migrations.
- context -- Values provided as part of
thiswithin all migration functions (up,down, andtest) - transform -- A function that allows you to transform migrations before they are run.
before/after callbacks are called in this order: beforeTest, before, after, afterTest
Migrations that take promises
One way to accomplish this is with a Migratefile that looks like this, which
will allow you to define migrations with upPromise, downPromise, and
testPromise functions:
var Promise = require 'bluebird';
module.exports = {
transform: function(migration) {
['up', 'down', 'test'].forEach(function(fn) {
var promiseVersion = migration[fn + "Promise"];
if (promiseVersion) {
migration[fn] = function(done) {
return Promise.resolve(promiseVersion()).nodeify(done);
};
}
});
return migration;
}
}Contributing
Please follow our Code of Conduct when contributing to this project.
$ git clone https://github.com/goodeggs/node-migrate-mongo && cd node-migrate-mongo
$ npm install
$ npm testModule scaffold generated by generator-goodeggs-npm.
10 years ago