How to Data Migration?

Halo kengkawan!

Pada blog saya sebelumnya, saya telah menjelaskan mengenai apa itu data migration. Kali ini, saya akan menjeleskan tentang bagaimana cara melakukan data migration.

Sebelumnya saya sempat bingung untuk melakukan migrasi data. Karena saya selalu mengalami error ketika menggunakan framework yang telah ada, seperti Mongoose-migration, Migrate-Mongoose, dan lain sebagainya. Akhirnya saya menemukan sebuah website yang menjelaskan bahwa untuk melakukan migration data sebenarnya hanya membutuhkan hal berikut.

Jika kita memiliki dua buah collection Event, dan Event2. Kita ingin melakukan perubahan data pada Event menjadi Event2. Hal ini dapat kita lakukan dengan menjalankan migration script dengan memanfaatkan metode pada Mongo.

Pertama-tama kita membutuhkan dua libraries, yaitu Mongoose dan Async.

var mongoose = require('mongoose');  
var async = require('async');

Lalu kita akan membuat sebuah variabel untuk menampung alamat database kita. (Dalam hal ini kami menggunakan mLab untuk menyimpan database)

var db = 'mongodb://pieo:pieo@ds145329.mlab.com:45329/sibujang-db-staging';

Buat fungsi _dropCollection untuk menghapus data Event

function _dropCollection(callback) {  
mongoose.connection.db.dropCollection('event', function (err, result) {
if (err) { callback(err); }
callback(null, result);
});
}

Lalu buat fungsi _renameCollection untuk mengubah nama Event2 menjadi Event dengan fungsi berikut

function _renameCollection(callback) {  
mongoose.connection.db.renameCollection('eventV2', 'event', function (err, result) {
if (err) { callback(err); }
callback(null, result);
});
}

Untuk melaksanakan fungsi _dropCollection dan _renameCollection secara berurut, gunakan fungsi async

mongoose.connect(db, function (err) {  
if (err) { throw err; }

async.series([_dropCollection, _renameCollection], function (err, result) {
if (err) { throw err; }
console.info('Completed successfully! Result: ' + result);
process.exit();
});
});

Lalu untuk menjalankannya, hanya perlu menjalankan perintah

node migration.js

Selesai! Migration Script berhasil dibuat!

Terima kasih sudah mau menyempatkan untuk membaca blog ini