Skill

টাইপওআরএম (TypeORM)

457

 টাইপওআরএম  (ইংরেজি:: TypeORM)হলো একটি ORM (Object-Relational Mapping) ফ্রেমওয়ার্ক যা TypeScript এবং JavaScript (ES7) ভিত্তিক অ্যাপ্লিকেশনগুলির জন্য তৈরি করা হয়েছে। এটি ডেভেলপারদের জন্য ডেটাবেসের সাথে কাজ করার একটি সহজ এবং কার্যকর উপায় প্রদান করে। TypeORM বিভিন্ন ধরনের ডেটাবেস, যেমন PostgreSQL, MySQL, MariaDB, SQLite, এবং MongoDB সমর্থন করে।


TypeORM: একটি বিস্তারিত বাংলা টিউটোরিয়াল

ভূমিকা

TypeORM হলো একটি Object-Relational Mapping (ORM) ফ্রেমওয়ার্ক, যা TypeScript এবং JavaScript ভিত্তিক অ্যাপ্লিকেশনগুলির জন্য তৈরি করা হয়েছে। এটি TypeScript এর সম্পূর্ণ সমর্থন নিয়ে কাজ করে এবং Node.js-এর সাথে সবচেয়ে বেশি ব্যবহৃত হয়। TypeORM-এর মাধ্যমে আপনি ডাটাবেসে CRUD (Create, Read, Update, Delete) অপারেশনগুলো খুব সহজে করতে পারবেন, কোনো SQL কোড না লিখেই।

ORM মূলত অবজেক্ট এবং রিলেশনাল ডেটাবেসের টেবিলগুলোর মধ্যে সম্পর্ক তৈরি করে, যাতে ডেভেলপাররা অবজেক্ট-ভিত্তিক কোড ব্যবহার করে ডাটাবেসের সাথে ইন্টারঅ্যাকশন করতে পারে।

TypeORM এর বৈশিষ্ট্য

  1. TypeScript সম্পূর্ণ সমর্থন: TypeORM পুরোপুরি TypeScript সমর্থন করে এবং তাই TypeScript ডেভেলপারদের জন্য আদর্শ।
  2. Database-agnostic: TypeORM অনেক ধরনের ডাটাবেস সমর্থন করে, যেমন MySQL, PostgreSQL, SQLite, MongoDB, ইত্যাদি।
  3. Entity-based মডেলিং: TypeORM-এ ডাটাবেস টেবিল এবং কলামগুলো Entity-রূপে মডেল করা হয়।
  4. সাধারণ CRUD অপারেশন: সহজেই Create, Read, Update, Delete অপারেশন করা যায়।
  5. রিলেশনশিপ ম্যানেজমেন্ট: ডাটাবেসের টেবিলগুলোর মধ্যে One-to-One, One-to-Many, এবং Many-to-Many রিলেশনশিপ ম্যানেজ করতে সক্ষম।
  6. Migration: ডাটাবেস মাইগ্রেশন সমর্থন করে, যা ডাটাবেস স্কিমা পরিবর্তন করার প্রক্রিয়া সহজ করে।

TypeORM এর কাজের ধাপ

ধাপ ১: TypeORM সেটআপ করা

TypeORM শুরু করার জন্য আপনাকে একটি Node.js অ্যাপ্লিকেশন সেটআপ করতে হবে। নিচে TypeORM সেটআপের ধাপগুলো দেওয়া হলো:

Step 1: একটি নতুন প্রজেক্ট তৈরি করা

mkdir typeorm-example
cd typeorm-example
npm init -y

Step 2: প্রয়োজনীয় প্যাকেজ ইনস্টল করা

npm install typeorm reflect-metadata mysql2

typeorm: TypeORM লাইব্রেরি। reflect-metadata: TypeScript এর জন্য রিফ্লেকশন মেটাডেটা। mysql2: MySQL ডাটাবেস ব্যবহার করার জন্য ড্রাইভার (আপনার ডাটাবেস অনুযায়ী এই ড্রাইভার পরিবর্তন করতে হবে)।

ধাপ ২: TypeScript সেটআপ করা

TypeORM পুরোপুরি TypeScript সমর্থন করে, তাই আমাদের TypeScript সেটআপ করতে হবে।

Step 1: TypeScript এবং ts-node ইনস্টল করা

npm install typescript ts-node @types/node --save-dev

Step 2: TypeScript কনফিগারেশন ফাইল তৈরি করা

npx tsc --init

এটি tsconfig.json ফাইল তৈরি করবে, যা TypeScript এর কনফিগারেশন ফাইল।

ধাপ ৩: TypeORM কনফিগারেশন ফাইল তৈরি করা

TypeORM-কে ডাটাবেস সংযোগ এবং মডেল তৈরির জন্য কনফিগারেশন প্রয়োজন। এই কনফিগারেশন ormconfig.json ফাইলে করা হবে।

{
  "type": "mysql",
  "host": "localhost",
  "port": 3306,
  "username": "root",
  "password": "password",
  "database": "test",
  "entities": ["src/entity/**/*.ts"],
  "synchronize": true
}

এখানে:

  • type: ডাটাবেস টাইপ (যেমন MySQL)।
  • host: ডাটাবেস সার্ভারের হোস্ট।
  • port: ডাটাবেস সার্ভারের পোর্ট।
  • username: ডাটাবেস ইউজারনেম।
  • password: ডাটাবেস পাসওয়ার্ড।
  • database: ডাটাবেসের নাম।
  • entities: কোথায় Entity (টেবিল) সংজ্ঞা করা হবে।
  • synchronize: যদি true করা হয়, তাহলে TypeORM ডাটাবেস স্কিমা অটোমেটিকালি সিঙ্ক করবে।

ধাপ ৪: Entity তৈরি করা

Entity হলো TypeORM-এ ডাটাবেসের টেবিলের একটি রেপ্রেজেন্টেশন। আমরা একটি User টেবিল তৈরি করব।

// src/entity/User.ts
import { Entity, PrimaryGeneratedColumn, Column } from "typeorm";

@Entity()
export class User {
    @PrimaryGeneratedColumn()
    id: number;

    @Column()
    firstName: string;

    @Column()
    lastName: string;

    @Column()
    age: number;
}

উপরের উদাহরণে:

  • @Entity() ডেকোরেটর ব্যবহার করে এটি একটি ডাটাবেস টেবিল হিসেবে ঘোষণা করা হয়েছে।
  • @PrimaryGeneratedColumn() ব্যবহার করে id কে প্রাইমারি কি করা হয়েছে এবং এটি অটোমেটিকালি জেনারেট হবে।
  • @Column() ব্যবহার করে ডাটাবেসের কলাম তৈরি করা হয়েছে।

ধাপ ৫: ডাটাবেসের সাথে সংযোগ স্থাপন করা এবং CRUD অপারেশন

এখন আমরা ডাটাবেসের সাথে সংযোগ স্থাপন করব এবং CRUD অপারেশন করব।

import "reflect-metadata";
import { createConnection } from "typeorm";
import { User } from "./entity/User";

createConnection().then(async connection => {
    console.log("Connected to the database!");

    // একটি নতুন ইউজার তৈরি করা
    let user = new User();
    user.firstName = "John";
    user.lastName = "Doe";
    user.age = 25;
    await connection.manager.save(user);
    console.log("User has been saved!");

    // সমস্ত ইউজার রিট্রিভ করা
    const users = await connection.manager.find(User);
    console.log("All users from the database:", users);

}).catch(error => console.log(error));

এই কোডের মাধ্যমে:

  1. ডাটাবেসের সাথে সংযোগ স্থাপন করা হবে।
  2. নতুন একটি User তৈরি করে তা ডাটাবেসে সেভ করা হবে।
  3. সব ইউজার রিট্রিভ করা হবে।

ধাপ ৬: TypeORM মাইগ্রেশন

TypeORM মাইগ্রেশন সমর্থন করে, যা ডাটাবেস স্কিমার পরিবর্তন ট্র্যাক করতে সাহায্য করে। আপনি TypeORM CLI ব্যবহার করে মাইগ্রেশন তৈরি করতে পারেন।

Step 1: মাইগ্রেশন তৈরি করা

npx typeorm migration:generate -n MigrationName

Step 2: মাইগ্রেশন রান করা

npx typeorm migration:run

TypeORM এর সুবিধা

  1. TypeScript সমর্থন: TypeORM TypeScript সমর্থন করে, যা টাইপ সেফটি এবং আরও উন্নত ডেভেলপার অভিজ্ঞতা প্রদান করে।
  2. Database Independence: TypeORM বিভিন্ন ডাটাবেস সিস্টেমের সাথে কাজ করে, যেমন MySQL, PostgreSQL, MongoDB ইত্যাদি।
  3. Entity-based মডেলিং: TypeORM ডাটাবেসের টেবিল এবং কলামগুলোর সাথে সরাসরি কাজ করতে সাহায্য করে।
  4. রিলেশন ম্যানেজমেন্ট: TypeORM সহজেই One-to-One, One-to-Many, Many-to-Many রিলেশনশিপ সমর্থন করে।
  5. Migration Support: TypeORM মাইগ্রেশন সমর্থন করে, যা ডাটাবেস স্কিমার পরিবর্তন করতে সাহায্য করে।

TypeORM এর অসুবিধা

  1. শেখার সময়: TypeORM শিখতে কিছুটা সময় লাগতে পারে, বিশেষত যদি আপনি নতুন হন।
  2. বড় প্রজেক্টে পারফরম্যান্স: খুব বড় প্রজেক্টে TypeORM কিছু ক্ষেত্রে পারফরম্যান্স সমস্যার সম্মুখীন হতে পারে।
  3. ORM এর সীমাবদ্ধতা: ORM এর স্বাভাবিক সীমাবদ্ধতার কারণে জটিল SQL প্রশ্নগুলোতে TypeORM কাজ করা কিছুটা কঠিন হতে পারে।

TypeORM বনাম অন্যান্য ORM

বিষয়TypeORMSequelizeMongoose
ভাষাTypeScript, JSJavaScriptJavaScript
ডাটাবেস সমর্থনMySQL, PostgreSQL, MongoDBMySQL, PostgreSQL, SQLiteMongoDB
TypeScript সমর্থনহ্যাঁআংশিকনা
Migrationসমর্থিতসমর্থিতসমর্থিত নয়
রিলেশনশিপ সমর্থনখুব ভালোভালোসমর্থিত নয়

TypeORM শেখার জন্য রিসোর্স

  1. TypeORM অফিসিয়াল ডকুমেন্টেশন: https://typeorm.io
  2. YouTube টিউটোরিয়াল: YouTube এ "TypeORM Tutorial" নামে বিভিন্ন ভিডিও টিউটোরিয়াল পাওয়া যায়।
  3. MDN Web Docs: TypeORM এবং ORM সম্পর্কে আরও জানতে MDN Web Docs ব্যবহার করতে পারেন।

কিওয়ার্ড

  • TypeORM: TypeScript ভিত্তিক ORM ফ্রেমওয়ার্ক, যা ডাটাবেস ম্যানিপুলেশন সহজ করে।
  • Entity: TypeORM এ ডাটাবেস টেবিলকে উপস্থাপন করা হয়।
  • Migration: ডাটাবেস স্কিমা পরিবর্তনের জন্য ব্যবহৃত টুল।
  • CRUD: Create, Read, Update, Delete অপারেশন।

উপসংহার

TypeORM হলো একটি শক্তিশালী এবং TypeScript ভিত্তিক ORM ফ্রেমওয়ার্ক, যা ডেভেলপারদেরকে ডাটাবেসের সাথে সহজে এবং কার্যকরীভাবে কাজ করতে সাহায্য করে। এর Entity-based মডেলিং, রিলেশন ম্যানেজমেন্ট, এবং মাইগ্রেশন সাপোর্ট এটিকে জাভাস্ক্রিপ্ট এবং TypeScript ডেভেলপারদের জন্য আদর্শ করে তুলেছে। TypeORM ব্যবহার করে আপনি দ্রুত এবং সুশৃঙ্খলভাবে ডাটাবেস ইন্টিগ্রেশন করতে পারবেন।

 টাইপওআরএম  (ইংরেজি:: TypeORM)হলো একটি ORM (Object-Relational Mapping) ফ্রেমওয়ার্ক যা TypeScript এবং JavaScript (ES7) ভিত্তিক অ্যাপ্লিকেশনগুলির জন্য তৈরি করা হয়েছে। এটি ডেভেলপারদের জন্য ডেটাবেসের সাথে কাজ করার একটি সহজ এবং কার্যকর উপায় প্রদান করে। TypeORM বিভিন্ন ধরনের ডেটাবেস, যেমন PostgreSQL, MySQL, MariaDB, SQLite, এবং MongoDB সমর্থন করে।


TypeORM: একটি বিস্তারিত বাংলা টিউটোরিয়াল

ভূমিকা

TypeORM হলো একটি Object-Relational Mapping (ORM) ফ্রেমওয়ার্ক, যা TypeScript এবং JavaScript ভিত্তিক অ্যাপ্লিকেশনগুলির জন্য তৈরি করা হয়েছে। এটি TypeScript এর সম্পূর্ণ সমর্থন নিয়ে কাজ করে এবং Node.js-এর সাথে সবচেয়ে বেশি ব্যবহৃত হয়। TypeORM-এর মাধ্যমে আপনি ডাটাবেসে CRUD (Create, Read, Update, Delete) অপারেশনগুলো খুব সহজে করতে পারবেন, কোনো SQL কোড না লিখেই।

ORM মূলত অবজেক্ট এবং রিলেশনাল ডেটাবেসের টেবিলগুলোর মধ্যে সম্পর্ক তৈরি করে, যাতে ডেভেলপাররা অবজেক্ট-ভিত্তিক কোড ব্যবহার করে ডাটাবেসের সাথে ইন্টারঅ্যাকশন করতে পারে।

TypeORM এর বৈশিষ্ট্য

  1. TypeScript সম্পূর্ণ সমর্থন: TypeORM পুরোপুরি TypeScript সমর্থন করে এবং তাই TypeScript ডেভেলপারদের জন্য আদর্শ।
  2. Database-agnostic: TypeORM অনেক ধরনের ডাটাবেস সমর্থন করে, যেমন MySQL, PostgreSQL, SQLite, MongoDB, ইত্যাদি।
  3. Entity-based মডেলিং: TypeORM-এ ডাটাবেস টেবিল এবং কলামগুলো Entity-রূপে মডেল করা হয়।
  4. সাধারণ CRUD অপারেশন: সহজেই Create, Read, Update, Delete অপারেশন করা যায়।
  5. রিলেশনশিপ ম্যানেজমেন্ট: ডাটাবেসের টেবিলগুলোর মধ্যে One-to-One, One-to-Many, এবং Many-to-Many রিলেশনশিপ ম্যানেজ করতে সক্ষম।
  6. Migration: ডাটাবেস মাইগ্রেশন সমর্থন করে, যা ডাটাবেস স্কিমা পরিবর্তন করার প্রক্রিয়া সহজ করে।

TypeORM এর কাজের ধাপ

ধাপ ১: TypeORM সেটআপ করা

TypeORM শুরু করার জন্য আপনাকে একটি Node.js অ্যাপ্লিকেশন সেটআপ করতে হবে। নিচে TypeORM সেটআপের ধাপগুলো দেওয়া হলো:

Step 1: একটি নতুন প্রজেক্ট তৈরি করা

mkdir typeorm-example
cd typeorm-example
npm init -y

Step 2: প্রয়োজনীয় প্যাকেজ ইনস্টল করা

npm install typeorm reflect-metadata mysql2

typeorm: TypeORM লাইব্রেরি। reflect-metadata: TypeScript এর জন্য রিফ্লেকশন মেটাডেটা। mysql2: MySQL ডাটাবেস ব্যবহার করার জন্য ড্রাইভার (আপনার ডাটাবেস অনুযায়ী এই ড্রাইভার পরিবর্তন করতে হবে)।

ধাপ ২: TypeScript সেটআপ করা

TypeORM পুরোপুরি TypeScript সমর্থন করে, তাই আমাদের TypeScript সেটআপ করতে হবে।

Step 1: TypeScript এবং ts-node ইনস্টল করা

npm install typescript ts-node @types/node --save-dev

Step 2: TypeScript কনফিগারেশন ফাইল তৈরি করা

npx tsc --init

এটি tsconfig.json ফাইল তৈরি করবে, যা TypeScript এর কনফিগারেশন ফাইল।

ধাপ ৩: TypeORM কনফিগারেশন ফাইল তৈরি করা

TypeORM-কে ডাটাবেস সংযোগ এবং মডেল তৈরির জন্য কনফিগারেশন প্রয়োজন। এই কনফিগারেশন ormconfig.json ফাইলে করা হবে।

{
  "type": "mysql",
  "host": "localhost",
  "port": 3306,
  "username": "root",
  "password": "password",
  "database": "test",
  "entities": ["src/entity/**/*.ts"],
  "synchronize": true
}

এখানে:

  • type: ডাটাবেস টাইপ (যেমন MySQL)।
  • host: ডাটাবেস সার্ভারের হোস্ট।
  • port: ডাটাবেস সার্ভারের পোর্ট।
  • username: ডাটাবেস ইউজারনেম।
  • password: ডাটাবেস পাসওয়ার্ড।
  • database: ডাটাবেসের নাম।
  • entities: কোথায় Entity (টেবিল) সংজ্ঞা করা হবে।
  • synchronize: যদি true করা হয়, তাহলে TypeORM ডাটাবেস স্কিমা অটোমেটিকালি সিঙ্ক করবে।

ধাপ ৪: Entity তৈরি করা

Entity হলো TypeORM-এ ডাটাবেসের টেবিলের একটি রেপ্রেজেন্টেশন। আমরা একটি User টেবিল তৈরি করব।

// src/entity/User.ts
import { Entity, PrimaryGeneratedColumn, Column } from "typeorm";

@Entity()
export class User {
    @PrimaryGeneratedColumn()
    id: number;

    @Column()
    firstName: string;

    @Column()
    lastName: string;

    @Column()
    age: number;
}

উপরের উদাহরণে:

  • @Entity() ডেকোরেটর ব্যবহার করে এটি একটি ডাটাবেস টেবিল হিসেবে ঘোষণা করা হয়েছে।
  • @PrimaryGeneratedColumn() ব্যবহার করে id কে প্রাইমারি কি করা হয়েছে এবং এটি অটোমেটিকালি জেনারেট হবে।
  • @Column() ব্যবহার করে ডাটাবেসের কলাম তৈরি করা হয়েছে।

ধাপ ৫: ডাটাবেসের সাথে সংযোগ স্থাপন করা এবং CRUD অপারেশন

এখন আমরা ডাটাবেসের সাথে সংযোগ স্থাপন করব এবং CRUD অপারেশন করব।

import "reflect-metadata";
import { createConnection } from "typeorm";
import { User } from "./entity/User";

createConnection().then(async connection => {
    console.log("Connected to the database!");

    // একটি নতুন ইউজার তৈরি করা
    let user = new User();
    user.firstName = "John";
    user.lastName = "Doe";
    user.age = 25;
    await connection.manager.save(user);
    console.log("User has been saved!");

    // সমস্ত ইউজার রিট্রিভ করা
    const users = await connection.manager.find(User);
    console.log("All users from the database:", users);

}).catch(error => console.log(error));

এই কোডের মাধ্যমে:

  1. ডাটাবেসের সাথে সংযোগ স্থাপন করা হবে।
  2. নতুন একটি User তৈরি করে তা ডাটাবেসে সেভ করা হবে।
  3. সব ইউজার রিট্রিভ করা হবে।

ধাপ ৬: TypeORM মাইগ্রেশন

TypeORM মাইগ্রেশন সমর্থন করে, যা ডাটাবেস স্কিমার পরিবর্তন ট্র্যাক করতে সাহায্য করে। আপনি TypeORM CLI ব্যবহার করে মাইগ্রেশন তৈরি করতে পারেন।

Step 1: মাইগ্রেশন তৈরি করা

npx typeorm migration:generate -n MigrationName

Step 2: মাইগ্রেশন রান করা

npx typeorm migration:run

TypeORM এর সুবিধা

  1. TypeScript সমর্থন: TypeORM TypeScript সমর্থন করে, যা টাইপ সেফটি এবং আরও উন্নত ডেভেলপার অভিজ্ঞতা প্রদান করে।
  2. Database Independence: TypeORM বিভিন্ন ডাটাবেস সিস্টেমের সাথে কাজ করে, যেমন MySQL, PostgreSQL, MongoDB ইত্যাদি।
  3. Entity-based মডেলিং: TypeORM ডাটাবেসের টেবিল এবং কলামগুলোর সাথে সরাসরি কাজ করতে সাহায্য করে।
  4. রিলেশন ম্যানেজমেন্ট: TypeORM সহজেই One-to-One, One-to-Many, Many-to-Many রিলেশনশিপ সমর্থন করে।
  5. Migration Support: TypeORM মাইগ্রেশন সমর্থন করে, যা ডাটাবেস স্কিমার পরিবর্তন করতে সাহায্য করে।

TypeORM এর অসুবিধা

  1. শেখার সময়: TypeORM শিখতে কিছুটা সময় লাগতে পারে, বিশেষত যদি আপনি নতুন হন।
  2. বড় প্রজেক্টে পারফরম্যান্স: খুব বড় প্রজেক্টে TypeORM কিছু ক্ষেত্রে পারফরম্যান্স সমস্যার সম্মুখীন হতে পারে।
  3. ORM এর সীমাবদ্ধতা: ORM এর স্বাভাবিক সীমাবদ্ধতার কারণে জটিল SQL প্রশ্নগুলোতে TypeORM কাজ করা কিছুটা কঠিন হতে পারে।

TypeORM বনাম অন্যান্য ORM

বিষয়TypeORMSequelizeMongoose
ভাষাTypeScript, JSJavaScriptJavaScript
ডাটাবেস সমর্থনMySQL, PostgreSQL, MongoDBMySQL, PostgreSQL, SQLiteMongoDB
TypeScript সমর্থনহ্যাঁআংশিকনা
Migrationসমর্থিতসমর্থিতসমর্থিত নয়
রিলেশনশিপ সমর্থনখুব ভালোভালোসমর্থিত নয়

TypeORM শেখার জন্য রিসোর্স

  1. TypeORM অফিসিয়াল ডকুমেন্টেশন: https://typeorm.io
  2. YouTube টিউটোরিয়াল: YouTube এ "TypeORM Tutorial" নামে বিভিন্ন ভিডিও টিউটোরিয়াল পাওয়া যায়।
  3. MDN Web Docs: TypeORM এবং ORM সম্পর্কে আরও জানতে MDN Web Docs ব্যবহার করতে পারেন।

কিওয়ার্ড

  • TypeORM: TypeScript ভিত্তিক ORM ফ্রেমওয়ার্ক, যা ডাটাবেস ম্যানিপুলেশন সহজ করে।
  • Entity: TypeORM এ ডাটাবেস টেবিলকে উপস্থাপন করা হয়।
  • Migration: ডাটাবেস স্কিমা পরিবর্তনের জন্য ব্যবহৃত টুল।
  • CRUD: Create, Read, Update, Delete অপারেশন।

উপসংহার

TypeORM হলো একটি শক্তিশালী এবং TypeScript ভিত্তিক ORM ফ্রেমওয়ার্ক, যা ডেভেলপারদেরকে ডাটাবেসের সাথে সহজে এবং কার্যকরীভাবে কাজ করতে সাহায্য করে। এর Entity-based মডেলিং, রিলেশন ম্যানেজমেন্ট, এবং মাইগ্রেশন সাপোর্ট এটিকে জাভাস্ক্রিপ্ট এবং TypeScript ডেভেলপারদের জন্য আদর্শ করে তুলেছে। TypeORM ব্যবহার করে আপনি দ্রুত এবং সুশৃঙ্খলভাবে ডাটাবেস ইন্টিগ্রেশন করতে পারবেন।

Promotion

Are you sure to start over?

Loading...