У кого-нибудь есть модуль миграции, который они используют для переноса данных mongodb с помощью плагина mongoose?Mongoose migrate
В настоящее время я использую модуль «migrate», и он отлично работает, за исключением того факта, что мне нужно создать/уничтожить мое соединение в каждом направлении вверх/вниз.
I.E.
// Setup mongoose
var mongoose = require('mongoose')
, Role = require('../models/role')
, User = require('../models/user');
exports.up = function(next) {
// get a brand new connection for this patch.
mongoose.connect('mongodb://localhost/sagedb');
var adminUser = {
username: 'admin',
password: 'admin'
};
User.createUser(adminUser, function(err, user) {
if (err) {
mongoose.disconnect(); // Make sure to close connection
return next(err);
}
mongoose.disconnect(next); // Make sure to close connection
});
};
exports.down = function(next) {
mongoose.connect('mongodb://localhost/sagedb'); // new connection for down
User.getUserByUsername('admin', function(err, user) {
if (err) {
mongoose.disconnect(function() { // make sure to close connection
return next(err);
});
}
if (!user) {
mongoose.disconnect(); // make sure to close connection
return next();
}
User.deleteUser(user, function(err, user) {
console.log('deleted user');
mongoose.disconnect(next); // make sure to close connection
});
});
};
Возможно, это гораздо лучший способ сделать это. Удивление, если единственным вариантом является создание моего собственного модуля, который запускает соединение один раз и закрывает его, когда все исправления завершены.
Я видел mongoose-migrate, отслеживающий миграцию в базе данных. Не очень специфично для mongoose IMHO, я бы предпочел использовать файл .migrate, но только нужно открыть соединение один раз.