nodejs mongo to postgres migration

İbrahim Yıldız
2 min readApr 25, 2024

Günümüzde, birçok yazılım projesi, gelişim sürecinde bir veritabanından diğerine veri taşıma ihtiyacıyla karşılaşabilir. Bu süreç, genellikle “migration” olarak adlandırılır. Migration, bir veritabanından diğerine veri taşıma işlemidir ve genellikle yeni bir veritabanı teknolojisine geçiş, veri birleştirme veya veri yedekleme gibi nedenlerle yapılır.

Bugünkü yazımızda, MongoDB’den PostgreSQL’e veri taşımanın pratik bir örneğini göstereceğiz. İşte bu görevi gerçekleştirmek için kullanacağımız JavaScript kod örneği:

npm install mongodb pg

vi app.js

const { MongoClient } = require('mongodb');
const { Pool } = require('pg');

// MongoDB bağlantı bilgileri
const mongoUrl = 'mongodb://localhost:27017';
const mongoDbName = 'admin';
const mongoCollectionName = 'test1';

// PostgreSQL bağlantı bilgileri
const pgConfig = {
user: 'postgres',
host: 'localhost',
database: 'postgres',
password: 'toortoor',
port: 5432,
};

async function migrateData() {
const mongoClient = await MongoClient.connect(mongoUrl, { useNewUrlParser: true });
const mongoDb = mongoClient.db(mongoDbName);
const collection = mongoDb.collection(mongoCollectionName);

const pgPool = new Pool(pgConfig);
const pgClient = await pgPool.connect();

try {
// MongoDB'den verileri al
const cursor = collection.find();
for await (const doc of cursor) {
// Her belgeyi PostgreSQL'e ekleyin
const query = 'INSERT INTO test1 (name) VALUES ($1)';
const values = [doc.name]; // MongoDB belgesindeki alanlara göre uyarlanmalıdır
await pgClient.query(query, values);
}

console.log('Migration successful!');
} catch (error) {
console.error('Migration failed:', error);
} finally {
// Bağlantıları kapat
await pgClient.release();
await mongoClient.close();
await pgPool.end();
}
}

migrateData();



node app.js

Bu kod parçası, MongoDB’den belgeleri çeker ve her birini PostgreSQL veritabanına ekler. Bu sayede, verilerinizi farklı bir veritabanı teknolojisine taşıyabilir veya yedekleyebilirsiniz.

Migration süreci, veri bütünlüğünün korunmasını sağlamak için dikkatlice planlanmalı ve test edilmelidir. Ayrıca, kaynak ve hedef veritabanlarının uyumluluğunu dikkate almak önemlidir.

Bu örnek kodu kullanarak, MongoDB’den PostgreSQL’e veri aktarma işlemlerini kolayca gerçekleştirebilir ve yazılım projenizin ihtiyaçlarına uygun veritabanı çözümleri bulabilirsiniz.

--

--