Data agnostic migrations
npm i migrations
In order to use this module you need to have a bootstrap file (e.g. migrations.js) where you
can initialize db, specify your own meta storage adapter and so on.
varMigrations=require('migrations'),MetaFile=require('migrations/lib/meta/file');module.exports=newMigrations({dir: __dirname+'/migrations',// directory with migration filesmeta: newMetaFile({path: __dirname+'/migrations.json'})// meta information storagetemplate: '',// template used by `--create` flag to generate a new migration file});module.exports.run();You can specify your custom store of meta data, e.g.:
varMigrations=require('migrations'),meta={};// Meta Storage has very basic interface:varstorage={get: function(cb){cb(null,meta);},set: function(value,cb){meta=value;cb();},};module.exports=newMigrations({dir: __dirname+'/migrations',meta: storage,// custom storage});module.exports.run();You can put a special task in package.json file:
{
"name": "my-project",
"scripts": {
"migrate": "node migrations.js"
}
}
and then you be able to do npm run migrate. Another option is to add shebang
to the migrations executable and run it in a manual way.
Usage: migrations.js [options]
Options:
-h, --help output usage information
--up Migrate up
--down Migrate down
--create Create empty migration file
--count Migrate particular number of migration
--revert Revert last migration