Skill

TypeORM ইনস্টলেশন এবং সেটআপ

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

392

TypeORM কি?

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

TypeORM পছন্দ করা হয় কারণ এটি আধুনিক ফিচারস যেমন TypeScript এর পূর্ণ সমর্থন, SQL এবং NoSQL ডেটাবেসের সমর্থন, এবং মাইগ্রেশন সুবিধা প্রদান করে।


TypeORM এর বৈশিষ্ট্য এবং সুবিধা

  • TypeScript সমর্থন: TypeORM TypeScript-এ লেখা ORM লাইব্রেরি, যার ফলে টাইপ সিস্টেম, অটো কমপ্লিট, এবং টাইপ-সেফ কোড তৈরি করা সহজ হয়।
  • ডেটাবেস সমর্থন: এটি বিভিন্ন রিলেশনাল ডেটাবেস যেমন MySQL, PostgreSQL, SQLite, MSSQL, Oracle, এবং NoSQL ডেটাবেস (MongoDB) সমর্থন করে।
  • অটো-জেনারেটেড SQL কোড: TypeORM কোডের মাধ্যমে ডেটাবেস টেবিল তৈরি করতে পারে, SQL স্টেটমেন্ট জেনারেট করে, যা কোডকে আরও সংক্ষিপ্ত এবং পড়তে সহজ করে তোলে।
  • ডেটাবেস মাইগ্রেশন: ডেটাবেসের স্ট্রাকচার পরিবর্তনের জন্য মাইগ্রেশন সিস্টেম সরবরাহ করে।
  • Relations এবং Join সমর্থন: TypeORM ক্লাসের মধ্যে সম্পর্ক তৈরি করে এবং বিভিন্ন টেবিলের মধ্যে Join এর মাধ্যমে ডেটা একত্রিত করতে সাহায্য করে।
  • স্মার্ট ক্যাশিং: TypeORM স্মার্ট ক্যাশিং সমর্থন করে, যা ডেটাবেস অ্যাক্সেসের পারফরম্যান্স উন্নত করে।

TypeORM ইনস্টলেশন এবং সেটআপ

TypeORM ব্যবহার করতে আপনাকে প্রথমে এটি ইনস্টল করতে হবে এবং সেটআপ করতে হবে। এটি সাধারণত Node.js প্রোজেক্টের মধ্যে ব্যবহৃত হয়।

১. Node.js ইনস্টলেশন

TypeORM ব্যবহার করতে হলে আপনার সিস্টেমে Node.js ইনস্টল করা থাকতে হবে। যদি Node.js ইনস্টল না থাকে, তাহলে Node.js অফিসিয়াল ওয়েবসাইট থেকে এটি ইনস্টল করুন।

২. প্রোজেক্ট তৈরি এবং ইনিশিয়ালাইজেশন

প্রথমে একটি নতুন Node.js প্রোজেক্ট তৈরি করতে হবে এবং npm ইনিশিয়ালাইজ করতে হবে।

mkdir my-project
cd my-project
npm init -y

৩. TypeORM এবং অন্যান্য ডিপেন্ডেন্সি ইনস্টলেশন

TypeORM এবং সংশ্লিষ্ট ড্রাইভার ইনস্টল করতে হবে (যেমন, MySQL ড্রাইভার বা PostgreSQL ড্রাইভার)।

যদি আপনি MySQL ব্যবহার করতে চান, তাহলে:

npm install typeorm mysql2

যদি আপনি PostgreSQL ব্যবহার করতে চান, তাহলে:

npm install typeorm pg

৪. TypeScript ইনস্টলেশন

TypeORM TypeScript-এ লেখা একটি লাইব্রেরি, তাই TypeScript এবং অন্যান্য TypeScript ডিপেন্ডেন্সি ইনস্টল করা প্রয়োজন।

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

৫. TypeORM কনফিগারেশন ফাইল তৈরি করা

প্রোজেক্টের মূল ডিরেক্টরিতে ormconfig.json ফাইল তৈরি করতে হবে, যেখানে ডেটাবেস সংযোগের কনফিগারেশন থাকবে। নিচে একটি সাধারণ কনফিগারেশন উদাহরণ দেওয়া হলো:

{
  "type": "mysql", 
  "host": "localhost", 
  "port": 3306, 
  "username": "root", 
  "password": "password", 
  "database": "test", 
  "synchronize": true, 
  "logging": false, 
  "entities": [
    "src/entity/*.ts"
  ], 
  "migrations": [
    "src/migration/**/*.ts"
  ], 
  "subscribers": [
    "src/subscriber/**/*.ts"
  ], 
  "cli": {
    "entitiesDir": "src/entity",
    "migrationsDir": "src/migration",
    "subscribersDir": "src/subscriber"
  }
}

এখানে:

  • type: ডেটাবেসের টাইপ (যেমন, "mysql", "postgres" ইত্যাদি)।
  • host: ডেটাবেস সার্ভারের হোস্ট।
  • port: ডেটাবেস সার্ভারের পোর্ট (MySQL এর জন্য 3306 সাধারণত ব্যবহৃত হয়)।
  • username: ডেটাবেসের ইউজারনেম।
  • password: ডেটাবেসের পাসওয়ার্ড।
  • database: ডেটাবেসের নাম।
  • synchronize: যদি true থাকে, TypeORM ডেটাবেসের স্কিমা অটোমেটিক্যালি সিঙ্ক্রোনাইজ করবে।

৬. Entity ক্লাস তৈরি করা

TypeORM এ entity হল একটি ক্লাস যা ডেটাবেস টেবিলের প্রতিনিধিত্ব করে। নিচে একটি সাধারণ User entity ক্লাসের উদাহরণ দেওয়া হলো:

import { Entity, PrimaryGeneratedColumn, Column } from "typeorm";

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

  @Column()
  firstName: string;

  @Column()
  lastName: string;

  @Column()
  age: number;
}

এখানে:

  • @Entity(): এটি একটি ক্লাসকে ডেটাবেস টেবিল হিসেবে চিহ্নিত করে।
  • @PrimaryGeneratedColumn(): এটি একটি প্রাথমিক কোলাম চিহ্নিত করে যা অটোমেটিক্যালি ইনক্রিমেন্ট হয়।
  • @Column(): এটি একটি সাধারণ কলাম চিহ্নিত করে।

৭. ডেটাবেস সংযোগ এবং Entity ব্যবহার করা

TypeORM এর createConnection() ফাংশন দিয়ে ডেটাবেসের সাথে সংযোগ স্থাপন করা হয় এবং পরে entity ব্যবহার করা হয়। নিচে একটি উদাহরণ দেওয়া হলো:

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

createConnection()
  .then(async connection => {
    // Entity Manager ব্যবহার করে ডেটাবেসে ডেটা যোগ করা
    const userRepository = connection.getRepository(User);
    const user = new User();
    user.firstName = "John";
    user.lastName = "Doe";
    user.age = 30;

    await userRepository.save(user);
    console.log("User has been saved");
  })
  .catch(error => console.log(error));

এখানে, createConnection() ফাংশন TypeORM এর কনফিগারেশন ফাইল থেকে ডেটাবেস কনফিগারেশন নিয়ে ডেটাবেসে সংযোগ তৈরি করে এবং User entity ব্যবহার করে ডেটাবেসে নতুন ডেটা যোগ করা হয়।


৮. TypeORM মাইগ্রেশন সেটআপ করা

ডেটাবেস স্কিমা পরিবর্তন করার সময় মাইগ্রেশন ব্যবহার করা হয়। TypeORM মাইগ্রেশন ফিচার ব্যবহারের মাধ্যমে আপনি ডেটাবেসের স্ট্রাকচার পরিবর্তন করতে পারেন। মাইগ্রেশন ফাইল তৈরি করতে এবং চালাতে TypeORM CLI ব্যবহার করা হয়।

মাইগ্রেশন ফাইল তৈরি করা:

npx typeorm migration:generate -n MigrationName

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

npx typeorm migration:run

সারাংশ

TypeORM ব্যবহার করতে শুরু করার জন্য, প্রথমে এটি ইনস্টল করতে হবে এবং তারপর ডেটাবেস কনফিগারেশন এবং Entity ক্লাস তৈরি করতে হবে। TypeORM এর সাথে TypeScript ব্যবহার করা হয়, এবং এর মাধ্যমে আপনি সহজেই ডেটাবেসের সাথে ইন্টারঅ্যাক্ট করতে পারেন। TypeORM ইনস্টলেশন এবং সেটআপ প্রক্রিয়া সহজ এবং দ্রুত, যা আপনাকে ডেটাবেস অপারেশন এবং মাইগ্রেশন পরিচালনা করতে সহায়তা করে।

Content added By

Node.js এবং NPM/Yarn এর ভূমিকা

Node.js হল একটি জাভাস্ক্রিপ্ট রানটাইম যা সার্ভার সাইড অ্যাপ্লিকেশন তৈরির জন্য ব্যবহৃত হয়। এটি গুগলের V8 JavaScript Engine ব্যবহার করে এবং সার্ভার সাইডে JavaScript কোড চালানোর সুবিধা প্রদান করে।

NPM (Node Package Manager) হল একটি প্যাকেজ ম্যানেজার যা Node.js এর জন্য ব্যবহৃত হয়। এটি Node.js প্রোজেক্টে প্রয়োজনীয় লাইব্রেরি এবং প্যাকেজ ইনস্টল এবং ম্যানেজ করতে সাহায্য করে। Yarn হল NPM-এর একটি বিকল্প যা দ্রুত এবং নির্ভরযোগ্য প্যাকেজ ম্যানেজমেন্ট প্রদান করে।

TypeORM হল একটি জনপ্রিয় ORM (Object-Relational Mapping) লাইব্রেরি যা TypeScript এবং JavaScript এর জন্য ডেটাবেস ম্যানেজমেন্ট সুবিধা প্রদান করে। TypeORM ব্যবহার করতে হলে, প্রথমে আপনার সিস্টেমে Node.js, NPM বা Yarn ইনস্টল করা থাকতে হবে। নিচে Node.js এবং NPM/Yarn ইনস্টল করার প্রক্রিয়া দেওয়া হলো।


১. Node.js ইনস্টলেশন

Node.js ইনস্টল করার জন্য নিচের পদক্ষেপগুলো অনুসরণ করুন:

Windows/MacOS/Linux এ Node.js ইনস্টল করা:

  1. Node.js অফিসিয়াল ওয়েবসাইটে যান:
  2. LTS ভার্সন নির্বাচন করুন:
    • সাইটে দুইটি ভার্সন দেখাবে: LTS (Long Term Support) এবং Current। আপনি LTS ভার্সনটি নির্বাচন করুন, কারণ এটি আরও স্থিতিশীল এবং দীর্ঘমেয়াদী সমর্থন পাবে।
  3. ডাউনলোড এবং ইনস্টল করুন:
    • ইনস্টলেশন ফাইল ডাউনলোড করার পর সেটি রান করুন এবং ইনস্টলেশন প্রক্রিয়া অনুসরণ করুন।
  4. ইনস্টলেশন যাচাই: ইনস্টলেশনের পর, টার্মিনাল বা কমান্ড প্রম্পটে নিচের কমান্ডটি ব্যবহার করে Node.js এবং NPM ইনস্টলেশনের স্ট্যাটাস চেক করুন:

    node -v
    npm -v
    

    এর মাধ্যমে আপনি Node.js এবং NPM এর ভার্সন দেখতে পাবেন, যা নিশ্চিত করবে যে ইনস্টলেশন সঠিকভাবে সম্পন্ন হয়েছে।


২. Yarn ইনস্টলেশন (অপশনাল)

যদি আপনি Yarn ব্যবহার করতে চান, তাহলে NPM-এর বিকল্প হিসেবে এটি ইনস্টল করতে পারেন। Yarn বেশি দ্রুত এবং নির্ভরযোগ্য প্যাকেজ ম্যানেজমেন্ট প্রদান করে।

Yarn ইনস্টল করা:

  1. Yarn অফিসিয়াল ওয়েবসাইটে যান:
  2. ডকুমেন্টেশন অনুসরণ করুন:
    • এখানে ইনস্টলেশনের জন্য বেশ কিছু বিকল্প দেয়া আছে। আপনি npm ব্যবহার করে Yarn ইনস্টল করতে পারেন:

      npm install -g yarn
      
  3. ইনস্টলেশন যাচাই:
    • Yarn ইনস্টলেশনের পর, কমান্ড প্রম্পট বা টার্মিনালে নিচের কমান্ডটি ব্যবহার করে Yarn এর ভার্সন চেক করুন:

      yarn -v
      

৩. TypeORM ইনস্টলেশন এবং সেটআপ

একবার Node.js এবং NPM/Yarn ইনস্টল হয়ে গেলে, আপনি TypeORM ইনস্টল করতে প্রস্তুত। TypeORM একটি শক্তিশালী ORM (Object-Relational Mapper) যা JavaScript/TypeScript দিয়ে ডেটাবেস ম্যানেজমেন্ট সহজ করে দেয়।

TypeORM ইনস্টলেশন:

  1. NPM ব্যবহার করে TypeORM ইনস্টল করা:

    npm install typeorm reflect-metadata mysql2
    
    • typeorm: TypeORM লাইব্রেরি ইনস্টল করা হয়।
    • reflect-metadata: TypeORM এর জন্য মেটাডেটা ব্যবহারের জন্য প্রয়োজনীয় প্যাকেজ।
    • mysql2: আপনি যদি MySQL ব্যবহার করতে চান, তবে এই ড্রাইভারটি ইনস্টল করতে হবে। অন্য ডেটাবেস ব্যবহার করতে চাইলে, যথাযথ ড্রাইভার ইনস্টল করুন (যেমন PostgreSQL এর জন্য pg ইত্যাদি)।
  2. Yarn ব্যবহার করে TypeORM ইনস্টল করা:

    yarn add typeorm reflect-metadata mysql2
    

৪. TypeORM এর সাথে ডেটাবেস কনফিগারেশন

TypeORM ব্যবহারের জন্য আপনাকে ডেটাবেস কনফিগারেশন সেটআপ করতে হবে। এখানে MySQL ব্যবহার করার উদাহরণ দেওয়া হলো:

  1. TypeORM কনফিগারেশন ফাইল তৈরি করুন (এটি সাধারণত ormconfig.json নামে তৈরি করা হয়):
{
  "type": "mysql",
  "host": "localhost",
  "port": 3306,
  "username": "root",
  "password": "your-password",
  "database": "test",
  "entities": [
    "src/entity/**/*.ts"
  ],
  "synchronize": true
}
  1. Entity ফাইল তৈরি করুন: TypeORM এ entities তৈরি করতে হয় যা ডেটাবেস টেবিলগুলির প্রতিনিধিত্ব করে।
import { Entity, PrimaryGeneratedColumn, Column } from "typeorm";

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

  @Column()
  name: string;

  @Column()
  age: number;
}
  1. TypeORM সেটআপ:
import { createConnection } from "typeorm";
import { User } from "./entity/User";

createConnection().then(async connection => {
  const userRepository = connection.getRepository(User);
  const user = new User();
  user.name = "John";
  user.age = 25;
  
  await userRepository.save(user);
  console.log("User has been saved");
}).catch(error => console.log(error));

সারাংশ

Node.js এবং NPM/Yarn হল TypeORM ব্যবহার করার জন্য প্রাথমিক পদক্ষেপ। Node.js ইনস্টল করার পর, আপনি TypeORM ইনস্টল করে ডেটাবেস সংযোগ করতে পারেন। Yarn বা NPM এর মাধ্যমে প্যাকেজ ম্যানেজমেন্টের সুবিধা পাওয়া যায়, এবং TypeORM ডেটাবেস ম্যানেজমেন্ট খুবই সহজ এবং কার্যকরীভাবে করে তোলে। TypeORM এর সাথে কাজ করার জন্য আপনার Entity, Repository, এবং Database Configuration সঠিকভাবে সেটআপ করা প্রয়োজন।

Content added By

TypeORM কি?

TypeORM একটি ওপেন সোর্স ORM (Object Relational Mapping) লাইব্রেরি, যা TypeScript এবং JavaScript (ES7+) এর জন্য ব্যবহৃত হয়। এটি ডেভেলপারদের ডাটাবেসের সাথে ইন্টারঅ্যাক্ট করতে সক্ষম করে এবং SQL কোডের পরিবর্তে অবজেক্ট ও মেথড ব্যবহার করে ডাটাবেসের টেবিল এবং রেকর্ডগুলির সাথে কাজ করতে সহায়তা করে। TypeORM মূলত Relational Databases (যেমন MySQL, PostgreSQL, SQLite, MSSQL) সমর্থন করে, কিন্তু MongoDB সহ অন্যান্য ডাটাবেসগুলির জন্যও এটি ব্যবহার করা যেতে পারে।


TypeORM ইনস্টলেশন

TypeORM ইনস্টল করার জন্য আপনাকে Node.js এবং npm (বা Yarn) ইনস্টল করা থাকতে হবে। এর পরে, TypeORM ইনস্টল করা খুবই সহজ এবং আপনি npm বা Yarn দিয়ে এটি করতে পারেন।


১. NPM ব্যবহার করে TypeORM ইনস্টলেশন

প্রথম ধাপ: প্রজেক্ট তৈরি করা

আপনার প্রজেক্টের জন্য একটি ফোল্ডার তৈরি করুন এবং সেখানে npm init চালিয়ে একটি নতুন package.json ফাইল তৈরি করুন।

mkdir my-project
cd my-project
npm init -y

দ্বিতীয় ধাপ: TypeORM এবং অন্যান্য ডিপেনডেন্সি ইনস্টল করা

আপনি TypeORM এবং ডাটাবেস ড্রাইভার ইনস্টল করতে পারেন (যেমন, MySQL বা PostgreSQL)। নিচে MySQL ব্যবহার করে TypeORM ইনস্টল করার উদাহরণ দেওয়া হল:

npm install typeorm mysql2 reflect-metadata
  • typeorm: TypeORM লাইব্রেরিটি।
  • mysql2: MySQL ড্রাইভার TypeORM এর সাথে কাজ করার জন্য।
  • reflect-metadata: TypeScript-এ মেটাডেটা রিফ্লেকশন সাপোর্টের জন্য।

তৃতীয় ধাপ: TypeORM ব্যবহার করা শুরু করা

এখন আপনার প্রজেক্টে TypeORM ব্যবহার করতে পারেন। একটি TypeScript ফাইল তৈরি করুন এবং TypeORM কনফিগারেশন এবং মডেল তৈরি করতে শুরু করুন।

import 'reflect-metadata';
import { createConnection } from 'typeorm';

createConnection({
  type: 'mysql',
  host: 'localhost',
  port: 3306,
  username: 'root',
  password: 'password',
  database: 'test',
  entities: [
    // আপনার মডেল যুক্ত করুন
  ],
  synchronize: true,
}).then(() => {
  console.log('Connection established!');
}).catch((error) => {
  console.log('Error:', error);
});

এই কোডটি TypeORM এর কনফিগারেশন এবং ডাটাবেস সংযোগের উদাহরণ।


২. Yarn ব্যবহার করে TypeORM ইনস্টলেশন

প্রথম ধাপ: প্রজেক্ট তৈরি করা

Yarn দিয়ে একটি নতুন প্রজেক্ট তৈরি করতে হলে প্রথমে একটি ফোল্ডার তৈরি করুন এবং সেখানে yarn init চালান।

mkdir my-project
cd my-project
yarn init -y

দ্বিতীয় ধাপ: TypeORM এবং অন্যান্য ডিপেনডেন্সি ইনস্টল করা

Yarn দিয়ে TypeORM এবং আপনার পছন্দের ডাটাবেস ড্রাইভার ইনস্টল করুন (এখানে MySQL এর জন্য উদাহরণ):

yarn add typeorm mysql2 reflect-metadata
  • typeorm: TypeORM লাইব্রেরি।
  • mysql2: MySQL ড্রাইভার TypeORM এর সাথে কাজ করার জন্য।
  • reflect-metadata: TypeScript-এ মেটাডেটা রিফ্লেকশন সাপোর্টের জন্য।

তৃতীয় ধাপ: TypeORM ব্যবহার করা শুরু করা

আপনার প্রজেক্টে TypeORM ব্যবহার করতে একইভাবে TypeScript ফাইল তৈরি করুন এবং TypeORM কনফিগারেশন এবং মডেল তৈরি করতে শুরু করুন।

import 'reflect-metadata';
import { createConnection } from 'typeorm';

createConnection({
  type: 'mysql',
  host: 'localhost',
  port: 3306,
  username: 'root',
  password: 'password',
  database: 'test',
  entities: [
    // আপনার মডেল যুক্ত করুন
  ],
  synchronize: true,
}).then(() => {
  console.log('Connection established!');
}).catch((error) => {
  console.log('Error:', error);
});

এটি আপনার TypeORM কনফিগারেশন এবং ডাটাবেস সংযোগের উদাহরণ।


TypeORM কনফিগারেশন অপশনসমূহ

TypeORM এ বেশ কিছু কনফিগারেশন অপশন রয়েছে যা আপনার ডাটাবেসের সাথে সংযোগ করতে ব্যবহৃত হয়। সাধারণ কনফিগারেশন অপশনগুলো হল:

  • type: ডাটাবেসের ধরন (যেমন mysql, postgres, sqlite, mssql ইত্যাদি)।
  • host: ডাটাবেস সার্ভারের হোস্ট (যেমন localhost)।
  • port: ডাটাবেসের পোর্ট (যেমন 3306 MySQL এর জন্য)।
  • username: ডাটাবেসের ইউজারনেম।
  • password: ডাটাবেসের পাসওয়ার্ড।
  • database: ডাটাবেসের নাম।
  • entities: আপনার TypeORM মডেলগুলো যুক্ত করতে ব্যবহৃত হয়।
  • synchronize: যদি true হয়, তবে TypeORM আপনার ডাটাবেসের স্কিমা আপডেট করবে (এটি শুধুমাত্র ডেভেলপমেন্ট পরিবেশে ব্যবহার করুন)।

সারাংশ

TypeORM একটি শক্তিশালী এবং জনপ্রিয় ORM লাইব্রেরি, যা TypeScript এবং JavaScript এর সাথে খুব ভালোভাবে কাজ করে। এটি ডাটাবেসের সাথে কাজ করার জন্য আপনাকে অনেক সুবিধা প্রদান করে, যেমন অবজেক্ট-রিলেশনাল মডেল, SQL কোডের পরিবর্তে ডাটাবেস টেবিলগুলোর সাথে কাজ করার সুবিধা, এবং ডাটাবেস সংযোগের জন্য একটি সহজ কনফিগারেশন সিস্টেম।

আপনি npm বা Yarn ব্যবহার করে সহজেই TypeORM ইনস্টল করতে পারেন। তারপরে, TypeORM কনফিগারেশন এবং মডেল তৈরি করে আপনার অ্যাপ্লিকেশন তৈরি করতে শুরু করতে পারেন।

Content added By

TypeORM কি?

TypeORM একটি ORM (Object Relational Mapping) লাইব্রেরি যা TypeScript এবং JavaScript (ES7+) এর জন্য তৈরি হয়েছে। এটি আপনাকে জাভাস্ক্রিপ্ট/টাইপস্ক্রিপ্টের ক্লাস ব্যবহার করে ডেটাবেসের টেবিলগুলির সাথে কাজ করতে সহায়তা করে, এবং আপনি SQL লিখতে না করেও ডেটাবেসে তথ্য সংরক্ষণ এবং প্রক্রিয়া করতে পারেন। TypeORM MySQL, PostgreSQL, MariaDB, SQLite, SQL Server এবং অন্যান্য রিলেশনাল ডেটাবেস সাপোর্ট করে।

TypeORM ডেটাবেসের সাথে সহজে কাজ করতে একটি অবজেক্ট-ওরিয়েন্টেড পদ্ধতি প্রদান করে এবং এটি ডেটাবেস টেবিলের সাথে সোজাসুজি ম্যাপিং করার জন্য ব্যবহারকারীদের সুবিধা দেয়। TypeORM জেনারেট করা কোড ডেটাবেস টেবিলগুলির কাঠামোর মতো দেখতে হয়, যা কোডিংয়ের সময় ডেটাবেসের কনসিস্টেন্সি নিশ্চিত করে।


TypeORM এবং Database (PostgreSQL, MySQL) সংযোগ করা

TypeORM ব্যবহার করে PostgreSQL বা MySQL ডেটাবেসের সাথে সংযোগ করার জন্য কিছু নির্দিষ্ট পদক্ষেপ অনুসরণ করতে হয়। এখানে আমরা PostgreSQL এবং MySQL ডেটাবেসের সাথে TypeORM এর সংযোগ সেটআপ করার প্রক্রিয়া দেখাবো।


১. TypeORM ইনস্টল করা

প্রথমে আপনার প্রোজেক্টে TypeORM এবং প্রয়োজনীয় ডেটাবেস ড্রাইভার ইনস্টল করতে হবে। চলুন, PostgreSQL এবং MySQL উভয়ের জন্য আলাদা কমান্ড দেখি।

PostgreSQL এর জন্য:

npm install typeorm pg reflect-metadata

এখানে:

  • typeorm: TypeORM লাইব্রেরি।
  • pg: PostgreSQL ড্রাইভার।
  • reflect-metadata: TypeScript মেটাডেটা রিফ্লেকশন সাপোর্ট।

MySQL এর জন্য:

npm install typeorm mysql2 reflect-metadata

এখানে:

  • mysql2: MySQL ড্রাইভার।

২. TypeORM কনফিগারেশন তৈরি করা

TypeORM ডেটাবেস সংযোগের জন্য একটি কনফিগারেশন ফাইল তৈরি করতে হবে। এই কনফিগারেশন ফাইলে ডেটাবেসের ধরণ, কনফিগারেশন এবং সংযোগের অন্যান্য তথ্য থাকবে।

PostgreSQL কনফিগারেশন:

import { DataSource } from 'typeorm';

export const AppDataSource = new DataSource({
  type: 'postgres', // ডেটাবেসের টাইপ
  host: 'localhost', // ডেটাবেসের হোস্ট
  port: 5432, // PostgreSQL এর ডিফল্ট পোর্ট
  username: 'postgres', // ইউজারনেম
  password: 'your-password', // পাসওয়ার্ড
  database: 'your-database-name', // ডেটাবেসের নাম
  entities: [
    // এখানে আপনার Entity ক্লাসগুলো যুক্ত করবেন
  ],
  synchronize: true, // টেবিলগুলো স্বয়ংক্রিয়ভাবে সিঙ্ক্রোনাইজ হবে
  logging: true, // লগিং সক্ষম করা
});

MySQL কনফিগারেশন:

import { DataSource } from 'typeorm';

export const AppDataSource = new DataSource({
  type: 'mysql', // ডেটাবেসের টাইপ
  host: 'localhost', // ডেটাবেসের হোস্ট
  port: 3306, // MySQL এর ডিফল্ট পোর্ট
  username: 'root', // ইউজারনেম
  password: 'your-password', // পাসওয়ার্ড
  database: 'your-database-name', // ডেটাবেসের নাম
  entities: [
    // এখানে আপনার Entity ক্লাসগুলো যুক্ত করবেন
  ],
  synchronize: true, // টেবিলগুলো স্বয়ংক্রিয়ভাবে সিঙ্ক্রোনাইজ হবে
  logging: true, // লগিং সক্ষম করা
});

এখানে:

  • type: ডেটাবেসের ধরণ (PostgreSQL বা MySQL)।
  • host: ডেটাবেস সার্ভারের হোস্ট (যেমন localhost)।
  • port: ডেটাবেসের পোর্ট নম্বর।
  • username: ডেটাবেস ইউজারনেম।
  • password: ডেটাবেস পাসওয়ার্ড।
  • database: সংযোগ করা ডেটাবেসের নাম।
  • entities: আপনার TypeORM Entity ক্লাসগুলির লিস্ট।
  • synchronize: true হলে, TypeORM ডেটাবেস টেবিল স্বয়ংক্রিয়ভাবে তৈরি বা আপডেট করবে।
  • logging: যদি true থাকে, TypeORM সমস্ত SQL কোয়েরি লগ করবে।

৩. Entity তৈরি করা

TypeORM এ Entity একটি ক্লাস যা ডেটাবেস টেবিলের প্রতিনিধিত্ব করে। প্রতিটি Entity একটি টেবিলের সাথে ম্যাপিং করে এবং Entity ক্লাসের প্রোপার্টি গুলি টেবিলের কলাম হিসেবে কাজ করে।

Entity উদাহরণ:

import { Entity, PrimaryGeneratedColumn, Column } from 'typeorm';

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

  @Column()
  name: string;

  @Column()
  email: string;
}

এখানে, User Entity একটি টেবিলকে প্রতিনিধিত্ব করে যার তিনটি কলাম: id, name, এবং email


৪. TypeORM ডেটাবেসে সংযোগ স্থাপন

TypeORM এর initialize() মেথডটি ব্যবহার করে ডেটাবেসে সংযোগ স্থাপন করতে হবে। এই মেথডটি AppDataSource কনফিগারেশন থেকে নেওয়া হয়, যা ডেটাবেসের সংযোগ বিস্তারিত ধারণ করে।

সংযোগ স্থাপন:

import 'reflect-metadata';
import { AppDataSource } from './data-source';
import { User } from './entities/User';

AppDataSource.initialize()
  .then(() => {
    console.log('Data Source has been initialized!');
    // আপনার ডেটাবেস অপারেশন এখানে করুন
  })
  .catch((error) => {
    console.error('Error during Data Source initialization:', error);
  });

এখানে:

  • AppDataSource.initialize() ডেটাবেসের সংযোগ স্থাপন করে এবং যদি সবকিছু সঠিক থাকে, তাহলে একটি কনসোল লগ দেখায় "Data Source has been initialized!"।
  • যদি কোনো সমস্যা হয়, তবে ত্রুটি কনসোল লগ হবে।

৫. ডেটা ইনসার্ট ও রিট্রিভ করা

একবার সংযোগ স্থাপন হয়ে গেলে, আপনি ডেটাবেসে ডেটা ইনসার্ট এবং রিট্রিভ করতে পারেন। TypeORM সরাসরি Entity ক্লাসের মাধ্যমে কাজ করে, যার ফলে SQL কোয়েরি লেখার প্রয়োজন হয় না।

উদাহরণ: ডেটা ইনসার্ট

import { AppDataSource } from './data-source';
import { User } from './entities/User';

async function createUser() {
  const userRepository = AppDataSource.getRepository(User);
  const user = new User();
  user.name = 'John Doe';
  user.email = 'john@example.com';

  await userRepository.save(user);
  console.log('User has been saved');
}

createUser();

উদাহরণ: ডেটা রিট্রিভ

import { AppDataSource } from './data-source';
import { User } from './entities/User';

async function getUser() {
  const userRepository = AppDataSource.getRepository(User);
  const user = await userRepository.findOneBy({ id: 1 });
  console.log(user);
}

getUser();

এখানে, userRepository.save(user) ডেটাবেসে ইউজার ডেটা ইনসার্ট করে এবং userRepository.findOneBy() নির্দিষ্ট ইউজারকে রিট্রিভ করে।


সারাংশ

TypeORM ডেটাবেসে সংযোগ স্থাপন এবং ডেটা পরিচালনার জন্য একটি শক্তিশালী ORM টুল। TypeORM ব্যবহার করে আপনি PostgreSQL, MySQL বা অন্যান্য রিলেশনাল ডেটাবেসের সাথে সংযোগ স্থাপন করতে পারেন এবং কোডের মাধ্যমে ডেটা ম্যানিপুলেট করতে পারেন। ডেটাবেস কনফিগারেশন তৈরি করে, Entity ক্লাস দিয়ে টেবিলের সাথে ম্যাপিং করে, এবং TypeORM এর রেপোজিটরি API ব্যবহার করে ডেটা ইনসার্ট এবং রিট্রিভ করতে পারেন।

এটি ডেভেলপারদের জন্য কোডের মধ্যে SQL কোডের প্রয়োজনীয়তা কমিয়ে দেয় এবং রিলেশনাল ডেটাবেসের সাথে আরও কার্যকরীভাবে কাজ করতে সাহায্য করে।

Content added By

TypeORM কি?

TypeORM হল একটি জাভাস্ক্রিপ্ট এবং টাইপস্ক্রিপ্টের জন্য একমাত্র ORM (Object-Relational Mapper) যা SQL ডাটাবেসের সাথে কাজ করার জন্য ব্যবহৃত হয়। এটি আপনার অ্যাপ্লিকেশনের ডেটাবেস মডেলকে অবজেক্ট হিসেবে মান্য করে এবং ডাটাবেসের সাথে ইন্টারঅ্যাকশনকে আরও সহজ এবং স্বচ্ছ করে তোলে। TypeORM ডাটাবেসে তথ্য সংরক্ষণ, পড়া, আপডেট করা এবং মুছে ফেলা (CRUD অপারেশন) খুব সহজে সম্পাদন করতে সহায়তা করে।

TypeORM বিভিন্ন ডাটাবেস যেমন MySQL, PostgreSQL, SQLite, MariaDB, Oracle, এবং MS SQL Server সমর্থন করে।


TypeORM প্রজেক্ট তৈরি করার জন্য প্রয়োজনীয় পদক্ষেপ

এখানে TypeORM দিয়ে একটি বেসিক প্রজেক্ট তৈরি করার ধাপগুলো আলোচনা করা হবে।

১. প্রজেক্ট সেটআপ

প্রথমে, আপনার একটি Node.js প্রজেক্ট তৈরি করতে হবে। এই প্রজেক্টে TypeORM ইনস্টল করা হবে এবং ডাটাবেস সংযোগ করা হবে।

প্রথম ধাপ:

  • Node.js এবং npm ইনস্টল করা নিশ্চিত করুন।
  • একটি নতুন ফোল্ডার তৈরি করে Node.js প্রজেক্ট ইনিশিয়ালাইজ করুন।
mkdir typeorm-example
cd typeorm-example
npm init -y

দ্বিতীয় ধাপ:

  • TypeORM এবং অন্যান্য প্রয়োজনীয় প্যাকেজগুলি ইনস্টল করুন।
npm install typeorm reflect-metadata mysql2

এখানে, mysql2 হচ্ছে MySQL ডাটাবেসের জন্য ড্রাইভার। আপনি যদি অন্য ডাটাবেস ব্যবহার করেন, তবে আপনার ড্রাইভার নির্বাচন করুন (যেমন pg PostgreSQL এর জন্য)।

তৃতীয় ধাপ:

  • TypeScript সেটআপ করার জন্য typescript, ts-node এবং @types/node ইনস্টল করুন।
npm install typescript ts-node @types/node --save-dev

এখন একটি tsconfig.json ফাইল তৈরি করুন।

npx tsc --init

এটি TypeScript এর কনফিগারেশন ফাইল তৈরি করবে, যেখানে ডিফল্ট কনফিগারেশন থাকবে।


২. TypeORM কনফিগারেশন

TypeORM কনফিগারেশন ফাইল তৈরি করুন (ormconfig.json):

{
  "type": "mysql",
  "host": "localhost",
  "port": 3306,
  "username": "root",
  "password": "yourpassword",
  "database": "typeorm_example",
  "synchronize": true,
  "logging": false,
  "entities": ["src/entity/*.ts"],
  "migrations": ["src/migration/*.ts"],
  "subscribers": ["src/subscriber/*.ts"]
}

এই কনফিগারেশন ফাইলের মধ্যে ডাটাবেসের সংযোগের তথ্য এবং TypeORM এর সঠিক সেটিংস অন্তর্ভুক্ত থাকবে। synchronize: true মানে TypeORM ডাটাবেসের স্কিমাকে আপনার মডেল অনুযায়ী স্বয়ংক্রিয়ভাবে সিঙ্ক্রোনাইজ করবে।


৩. ডেটাবেস Entity তৈরি করা

এখন, আপনার ডাটাবেসের জন্য একটি Entity তৈরি করতে হবে। Entity TypeORM এর একটি ক্লাস যা ডাটাবেস টেবিলের প্রতিনিধিত্ব করে। উদাহরণস্বরূপ, একটি User entity তৈরি করা যাক।

src/entity/User.ts ফাইল তৈরি করুন:

import { Entity, PrimaryGeneratedColumn, Column } from "typeorm";

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

  @Column()
  name: string;

  @Column()
  email: string;
}

এখানে, @Entity() ডেকোরেটর ডাটাবেস টেবিলের প্রতিনিধিত্ব করে, এবং @PrimaryGeneratedColumn() এবং @Column() ডেকোরেটর ব্যবহার করে কলাম এবং প্রাইমারি কী নির্ধারণ করা হয়েছে।


৪. ডাটাবেস সংযোগ এবং CRUD অপারেশন

TypeORM এর সাথে সংযোগ করার জন্য একটি index.ts ফাইল তৈরি করতে হবে।

src/index.ts ফাইলটি তৈরি করুন:

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

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

  // নতুন ব্যবহারকারী তৈরি
  const user = new User();
  user.name = "John Doe";
  user.email = "john.doe@example.com";

  // Entity ম্যানেজার ব্যবহার করে ব্যবহারকারী সেভ করুন
  const userRepository = connection.getRepository(User);
  await userRepository.save(user);
  console.log("User has been saved: ", user);

  // সমস্ত ব্যবহারকারী সংগ্রহ করুন
  const users = await userRepository.find();
  console.log("All users: ", users);

}).catch(error => console.log("Error: ", error));

এখানে:

  • createConnection(): TypeORM এর সাথে ডাটাবেস সংযোগ স্থাপন করে।
  • userRepository.save(): একটি নতুন ব্যবহারকারী সেভ করা।
  • userRepository.find(): সমস্ত ব্যবহারকারী ডাটাবেস থেকে রিটার্ন করা।

৫. TypeScript কোড রান করা

এখন, TypeORM কোড রান করার জন্য TypeScript ফাইলটিকে কম্পাইল করতে হবে এবং তারপর ts-node ব্যবহার করে রান করতে হবে।

npx ts-node src/index.ts

এটি আপনার কোড রান করবে এবং যদি সবকিছু সঠিকভাবে কাজ করে, তাহলে ডাটাবেসে নতুন ব্যবহারকারী সেভ হবে এবং All users এর তালিকা দেখাবে।


সারাংশ

এখানে আমরা একটি TypeORM প্রজেক্ট তৈরি করার প্রক্রিয়া দেখেছি। প্রথমে, প্রজেক্ট সেটআপ, ডাটাবেস কনফিগারেশন এবং Entity তৈরি করা হয়েছে। এরপর CRUD অপারেশন (ব্যবহারকারী তৈরি, সেভ এবং রিড) করা হয়েছে। এই প্রক্রিয়াটি TypeORM এর মূল ধারণা বোঝার জন্য একটি প্রাথমিক প্রজেক্ট ছিল। TypeORM এর মাধ্যমে আপনি সহজেই JavaScript বা TypeScript অ্যাপ্লিকেশনে ডাটাবেস ম্যানেজমেন্ট করতে পারেন।

Content added By
Promotion

Are you sure to start over?

Loading...