mongodb adapter for east (node.js database migration tool) which uses mongodb native driver
Please note that mainstream mongodb adapter version (>= 1.x) requires east >= 1.x, for using adapter with older east versions (prior to 1.x) please use mongodb adapter version < 1.x.
All executed migrations names will be stored at _migrations
collection in the
current database. Object with following properties will be passed to migrate
and rollback
functions:
db
- instance of mongodb native db
dropIndexIfExists
function(collection, index, [callback]) - helper functioncollection.dropIndex
which throws an error if index doesn't exist). Thiseast mongo package also provides following migration templates:
Promise
in migrate
,rollback
functions.migrate
,rollback
functions.Default migration template will be used if template
is not set. To get path
of another template require.resolve
could be used, e.g. at .eastrc
:
module.exports = {
template: require.resolve('east-mongo/lib/migrationTemplates/async.js')
}
east mongo requires node.js >= 4 to work.
mongodb adapter requires mongodb
package as peer dependency (versions 2.x and
3.x are supported), so you should install it manually along side with east:
npm install east east-mongo mongodb@3
alternatively you could install it globally
Sample .eastrc
content:
{
"adapter": "east-mongo",
"url": "mongodb://localhost:27017/test",
"options": {
"server": {
"socketOptions": {
"socketTimeoutMS": 3600000
}
}
}
}
where url
is url of database which you want to migrate (in
mongodb native url connection format) and options
is optional settings
(see connect method specification).
Migration files created with default template
that comes with adapter will
look like:
exports.tags = [];
exports.migrate = function(params) {
const db = params.db;
return Promise.resolve();
};
exports.rollback = function(params) {
const db = params.db;
return Promise.resolve();
};
See east cli or library usage for more details.
MIT