টাইপওআরএম (TypeORM) পরিচিতি
TypeORM হল একটি শক্তিশালী ORM (Object-Relational Mapping) লাইব্রেরি যা TypeScript এবং JavaScript এর জন্য তৈরি করা হয়েছে। এটি ডাটাবেস ম্যানিপুলেশন, ডাটাবেস টেবিল ও সম্পর্কের মডেলিং এবং SQL কোড লেখার ক্ষেত্রে অনেক সাহায্য করে। TypeORM ব্যবহার করে আপনি ডাটাবেসের সাথে যোগাযোগ করতে পারবেন, মডেলগুলিকে ডিফাইন করতে পারবেন এবং SQL কোড কমপ্লেক্সিটি কমিয়ে ডেটা পরিচালনা সহজ করতে পারবেন।
TypeORM-এর কনফিগারেশন সাধারণত দুটি ফাইলের মাধ্যমে করা হয়:
ormconfig.json: JSON ফরম্যাটে ডাটাবেস কনফিগারেশন ফাইল।data-source.ts: TypeScript ফাইল, যা TypeORM কনফিগারেশন, ডাটাবেস সংযোগ এবং ডাটাবেসে মডেল ফিচারগুলো পরিচালনা করে।
ormconfig.json কনফিগারেশন ফাইল
ormconfig.json ফাইলটি TypeORM ডাটাবেসের কনফিগারেশন এবং সেটিংস সংরক্ষণ করতে ব্যবহৃত হয়। সাধারণত এই ফাইলটিতে ডাটাবেসের সংযোগ সেটিংস যেমন host, port, username, password, database name, এবং অন্যান্য কনফিগারেশন টুকরা থাকে।
ormconfig.json ফাইলের উদাহরণ:
{
"type": "postgres",
"host": "localhost",
"port": 5432,
"username": "postgres",
"password": "yourpassword",
"database": "testdb",
"synchronize": true,
"logging": true,
"entities": [
"src/entity/**/*.ts"
],
"migrations": [
"src/migration/**/*.ts"
],
"subscribers": [
"src/subscriber/**/*.ts"
],
"cli": {
"migrationsDir": "src/migration"
}
}
কনফিগারেশন ফাইলের বর্ণনা:
type: ডাটাবেসের ধরনের (যেমন,postgres,mysql,sqlite, ইত্যাদি)।host: ডাটাবেস সার্ভারের হোস্ট (যেমন,localhost, বা ডাটাবেস সার্ভারের IP ঠিকানা)।port: ডাটাবেস সার্ভারের পোর্ট (যেমন,5432PostgreSQL এর জন্য)।username: ডাটাবেস লগিন ইউজারনেম।password: ডাটাবেস ইউজারের পাসওয়ার্ড।database: ডাটাবেসের নাম।synchronize: যদিtrueহয়, TypeORM ডাটাবেসের টেবিল স্বয়ংক্রিয়ভাবে সিঙ্ক্রোনাইজ করবে।logging: যদিtrueহয়, TypeORM SQL কোয়েরি লোগ করবে।entities: ডাটাবেস মডেল বা এন্টিটিজি যেখানে রয়েছে। এখানে টেবিলের ক্লাসগুলোর পাথ দিতে হবে।migrations: মাইগ্রেশন ফাইলের অবস্থান।subscribers: সাবস্ক্রাইবার ফাইলের অবস্থান (যেগুলি ইভেন্ট হ্যান্ডলিং এর জন্য ব্যবহৃত হয়)।cli: TypeORM CLI টুলের জন্য মাইগ্রেশন ফাইলের ডিরেক্টরি।
data-source.ts কনফিগারেশন ফাইল (TypeScript)
TypeORM 0.3.x এর পর, data-source.ts ফাইলটি ormconfig.json এর বিকল্প হিসেবে ব্যবহৃত হচ্ছে। এতে TypeScript এর সাহায্যে ডাটাবেস সংযোগ এবং মডেল সেটআপ করা হয়। এটি একটি DataSource ইনস্ট্যান্স তৈরি করে, যেটি ডাটাবেসের সাথে যোগাযোগ এবং মডেল সংযোগ ব্যবস্থাপনা করে।
data-source.ts ফাইলের উদাহরণ:
import { DataSource } from "typeorm";
import { User } from "./entity/User"; // মডেল ইম্পোর্ট
import { Post } from "./entity/Post"; // মডেল ইম্পোর্ট
export const AppDataSource = new DataSource({
type: "postgres",
host: "localhost",
port: 5432,
username: "postgres",
password: "yourpassword",
database: "testdb",
synchronize: true,
logging: true,
entities: [User, Post],
migrations: [],
subscribers: [],
});
AppDataSource.initialize()
.then(() => {
console.log("Data Source has been initialized!");
})
.catch((error) => {
console.log("Error during Data Source initialization:", error);
});
data-source.ts কনফিগারেশন ফাইলের বর্ণনা:
AppDataSource: এখানে ডাটাবেস সংযোগ স্থাপন করা হয়। এটিDataSourceকনস্ট্রাক্টর দ্বারা তৈরি হয়, যা ডাটাবেস সংযোগ এবং ডাটাবেস সম্পর্কিত ফাংশনগুলি পরিচালনা করে।entities: ডাটাবেসের টেবিলগুলোকে TypeORM মডেল (এন্টিটি) হিসেবে ইম্পোর্ট এবং যুক্ত করা হয়।synchronize: যদিtrueহয়, TypeORM ডাটাবেস টেবিলগুলোকে মডেল অনুযায়ী স্বয়ংক্রিয়ভাবে সিঙ্ক্রোনাইজ করে।logging: যদিtrueহয়, TypeORM SQL কোয়েরি লোগ করবে।
AppDataSource.initialize() ফাংশনটি ডাটাবেস সংযোগ এবং সেটআপ প্রক্রিয়া শুরু করে।
ormconfig.json বনাম data-source.ts
| বৈশিষ্ট্য | ormconfig.json | data-source.ts |
|---|---|---|
| ফাইল টাইপ | JSON | TypeScript |
| কনফিগারেশন সিস্টেম | স্ট্যাটিক (JSON ফাইল) | ডাইনামিক (TypeScript কোড) |
| ব্যবহার | সহজ এবং ক্লাসিক কনফিগারেশন | TypeScript ডেভেলপমেন্টের জন্য বেশি উপযোগী |
| সামর্থ্য | সীমিত কাস্টমাইজেশন | উন্নত কাস্টমাইজেশন এবং প্রোগ্রাম্যাটিক কনফিগারেশন |
| আধুনিক ব্যবহার | পুরানো ভার্সনে ব্যবহৃত | TypeORM 0.3.x এবং পরবর্তী সংস্করণে ব্যবহৃত |
| ডেভেলপমেন্ট ফ্লো | সোজা এবং সরল | TypeScript এবং অ্যাডভান্সড সেটআপের জন্য উপযুক্ত |
সারাংশ
ormconfig.jsonএবংdata-source.tsউভয়ই TypeORM এর ডাটাবেস কনফিগারেশন পরিচালনার জন্য ব্যবহৃত হয়, তবে নতুন সংস্করণেdata-source.tsঅধিক ব্যবহৃত হচ্ছে।ormconfig.jsonহল একটি স্ট্যাটিক JSON ফাইল যেখানে ডাটাবেস কনফিগারেশন লিখা হয়, যা সাধারিতভাবে TypeORM 0.2.x সংস্করণে ব্যবহৃত হয়।data-source.tsহল একটি TypeScript ফাইল যেখানে TypeORM ডাটাবেস কনফিগারেশন প্রোগ্রাম্যাটিকভাবে লেখা হয় এবং এটি TypeORM 0.3.x সংস্করণ থেকে ব্যবহৃত হয়।
এটি আপনার প্রকল্পের প্রয়োজন অনুসারে ডেটাবেস কনফিগারেশন ব্যবস্থাপনার জন্য সঠিক ফাইল নির্বাচন করতে সাহায্য করবে।
Read more