monzgration
v0.0.21
Published
meteor friendly mongo migrations
Downloads
23
Readme
monzgration
Meteor friendly mongodb migrations.
Needs Meteor 1.4+ with node v4+ not tested with early node versions. Aiming to be a drop in replacement for Mongration but for Meteor as this library needs the Fibers library to work. I will respond to any issues quickly so please report any bugs or problems.
install
npm install monzgration --save
migration files
module.exports = {
id: 'unique_id_goes_here',
up: function(db, callback) {
console.log('ran an up migration.')
// db.insert etc
// you must call the callback.
// --> use async series / promises / generators here.
callback();
},
down: function(db, callback) {
console.log('ran down migration.')
callback();
}
};
usage with Meteor
const Monzgration = new _monzgration ({
mongo_url: 'mongodb://localhost:27107/test', // makes a seperate connection
persist: 'metastore' // mongo collection where metadata is stored.
});
Monzgration.add('migrations/1.js');
Monzgration.add('migrations/2.js');
Monzgration.add('migrations/3.js');
Monzgration.migrate(function (err, complete) {
if (!err) console.log (complete);
});
Pass in files as an array
const Monzgration = new _monzgration ({
mongo_url: 'mongodb://localhost:27107/test',
persist: 'metastore'
files: [
'migrations/1.js',
'migrations/2.js'
]
});
use Meteor's mongo client
// https://github.com/meteor/meteor/issues/532
//const db = MongoInternals.defaultRemoteCollectionDriver().mongo.db;
const db = new Collection('temp').rawDatabase();
// Instanciating Migration settings
const migrationSettings = {
migrationPath,
persist: 'sys_metastore',
driver: db
};
outside Meteor
This library uses Fibers and Futures to be Meteor Compatible so make sure to run the code within a Fiber, see the tests for an example of how to do this.
from the command line
monzgration --mongo-url mongodb://localhost:27017/meteor --metastore sys_metastore_debug --directory test/mock/should_succeed