Node.js में डेटाबेस माइग्रेशन: Sequelize, Knex और TypeORM

शुरुआती लोगों के लिए ऑनलाइन Python प्रशिक्षक

Python आसानी से सीखें बिना सिद्धांत के बोझ के। स्वचालित जांच के साथ व्यावहारिक कार्य हल करें और ब्राउज़र में सीधे कोड लिखें।

पाठ्यक्रम शुरू करें

JavaScript (Node.js) में डेटाबेस माइग्रेशन: टूल्स का पूर्ण अवलोकन



डेटाबेस माइग्रेशन डेटाबेस स्कीमा को नियंत्रित और वर्ज़न-आधारित तरीके से बदलने का एक तरीका है। Node.js की दुनिया में कई शक्तिशाली लाइब्रेरीज़ हैं जो इस प्रक्रिया को स्वचालित करने में मदद करती हैं। इस लेख में हम तीन सबसे लोकप्रिय टूल्स पर चर्चा करेंगे: Sequelize, Knex.js और TypeORM।



माइग्रेशन क्या हैं और इनकी आवश्यकता क्यों है?

माइग्रेशन डेवलपर्स और वातावरणों (dev, staging, production) के बीच डेटाबेस संरचना को सिंक्रोनाइज़ करने की समस्या का समाधान करते हैं। मैन्युअल रूप से SQL स्क्रिप्ट चलाने के बजाय, आप JavaScript/TypeScript में कोड के माध्यम से बदलावों का वर्णन करते हैं। लाभ:

  • बदलावों का स्वचालित अनुप्रयोग
  • पिछले वर्ज़न पर वापस जाने (रोलबैक) की क्षमता
  • रिपॉजिटरी में बदलावों के इतिहास का भंडारण
  • विभिन्न DBMS (PostgreSQL, MySQL, SQLite आदि) के लिए समर्थन


1. Sequelize — अंतर्निहित माइग्रेशन सिस्टम वाला ORM

Sequelize Node.js के लिए सबसे लोकप्रिय ORM में से एक है। यह माइग्रेशन प्रबंधन के लिए CLI टूल प्रदान करता है। इंस्टॉलेशन:

npm install --save sequelizenpm install --save-dev sequelize-clinpx sequelize-cli init

इनिशियलाइज़ेशन के बाद migrations, models, seeders फ़ोल्डर और कॉन्फ़िगरेशन फ़ाइल config/config.json बनाई जाती है।



माइग्रेशन बनाना

npx sequelize-cli migration:generate --name create-users-table

माइग्रेशन की सामग्री का उदाहरण:

'use strict';module.exports = {  up: async (queryInterface, Sequelize) => {    await queryInterface.createTable('Users', {      id: {        type: Sequelize.INTEGER,        primaryKey: true,        autoIncrement: true      },      username: {        type: Sequelize.STRING,        allowNull: false,        unique: true      },      email: {        type: Sequelize.STRING,        allowNull: false      },      createdAt: {        type: Sequelize.DATE,        allowNull: false      },      updatedAt: {        type: Sequelize.DATE,        allowNull: false      }    });  },  down: async (queryInterface, Sequelize) => {    await queryInterface.dropTable('Users');  }};


लागू करना और वापस लेना

npx sequelize-cli db:migratenpx sequelize-cli db:migrate:undo


2. Knex.js — माइग्रेशन के साथ SQL क्वेरी बिल्डर

Knex.js एक ORM नहीं है, बल्कि एक शक्तिशाली क्वेरी बिल्डर है। इसकी माइग्रेशन प्रणाली को सबसे लचीली में से एक माना जाता है। इंस्टॉलेशन:

npm install knex --savenpm install pg --save  # या mysql, sqlite3npx knex init


माइग्रेशन बनाना और लिखना

npx knex migrate:make create_posts_table

कोड का उदाहरण:

exports.up = function(knex) {  return knex.schema.createTable('posts', (table) => {    table.increments('id').primary();    table.string('title', 255).notNullable();    table.text('content');    table.integer('user_id').unsigned().references('id').inTable('users');    table.timestamps(true, true);  });};

exports.down = function(knex) { return knex.schema.dropTableIfExists('posts');};


काम करने के लिए कमांड

npx knex migrate:latestnpx knex migrate:rollbacknpx knex migrate:status  # स्थिति देखें

Knex प्रारंभिक डेटा भरने के लिए "सीड्स" (seeds) का भी समर्थन करता है:

npx knex seed:make 01_demo_usersnpx knex seed:run


3. TypeORM — TypeScript प्रोजेक्ट्स के लिए माइग्रेशन

TypeORM एक आधुनिक ORM है जो JavaScript और TypeScript दोनों को सपोर्ट करता है। इसकी माइग्रेशन प्रणाली एंटिटी डेकोरेटर्स के साथ गहराई से एकीकृत है। इंस्टॉलेशन:

npm install typeorm reflect-metadata --savenpm in                    

अनुशंसाएँ