monzgration

0.0.21 • Public • Published

monzgration

Build Status

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

Readme

Keywords

Package Sidebar

Install

npm i monzgration

Weekly Downloads

17

Version

0.0.21

License

MIT

Last publish

Collaborators

  • m-onz