ASP.NET Core-এ Entity Framework Core (EF Core) ব্যবহার করে ডেটাবেস মডেল ম্যানেজ করার জন্য মাইগ্রেশন (Migration) একটি গুরুত্বপূর্ণ টুল। এটি ডেটাবেস স্কিমা এবং অ্যাপ্লিকেশনের মডেল ক্লাসের মধ্যে সামঞ্জস্য রাখতে সাহায্য করে। কখনো কখনো মাইগ্রেশন আপডেট করতে হয়, আবার প্রয়োজনে রোলব্যাক (Rollback) করাও দরকার হতে পারে।
মাইগ্রেশন আপডেট করার মাধ্যমে অ্যাপ্লিকেশনের মডেল ক্লাসে করা পরিবর্তনগুলো ডেটাবেসে প্রয়োগ করা হয়।
যদি মডেল ক্লাসে পরিবর্তন করা হয়, তবে প্রথমে একটি নতুন মাইগ্রেশন তৈরি করতে হবে।
dotnet ef migrations add MigrationName
উদাহরণ:
dotnet ef migrations add AddNewColumn
এই কমান্ডটি Migrations
ফোল্ডারে একটি নতুন মাইগ্রেশন ফাইল তৈরি করবে, যেখানে ডেটাবেস স্কিমায় প্রয়োজনীয় পরিবর্তনের বিবরণ থাকবে।
নতুন মাইগ্রেশনটি ডেটাবেসে প্রয়োগ করার জন্য update
কমান্ডটি ব্যবহার করতে হবে।
dotnet ef database update
উদাহরণ:
মডেল ক্লাসে একটি নতুন কলাম যোগ করার পর এটি ডেটাবেসে প্রয়োগ করতে উপরের কমান্ডটি ব্যবহার করা হবে।
কোনো কারণে যদি মাইগ্রেশনে করা পরিবর্তন বাতিল করতে হয়, তবে রোলব্যাক করতে হবে।
ডেটাবেসকে একটি নির্দিষ্ট মাইগ্রেশন পর্যন্ত রোলব্যাক করার জন্য update
কমান্ডে মাইগ্রেশনের নাম উল্লেখ করতে হবে।
dotnet ef database update MigrationName
উদাহরণ:InitialCreate
নামক মাইগ্রেশনে ফিরে যেতে হলে:
dotnet ef database update InitialCreate
শেষ মাইগ্রেশনের পরিবর্তন বাতিল করতে মাইগ্রেশন ফাইলটি মুছে দিন এবং তারপর ডেটাবেসকে পূর্ববর্তী অবস্থায় আপডেট করুন।
dotnet ef database update PreviousMigrationName
উদাহরণ:
শেষ মাইগ্রেশনটি যদি AddNewColumn
হয়, তবে এটি বাতিল করতে:
dotnet ef database update InitialCreate
যদি ডেটাবেস সম্পূর্ণ রিসেট করতে হয়, তবে নিচের ধাপগুলো অনুসরণ করুন:
ডেটাবেস মুছে ফেলুন:
dotnet ef database drop
মাইগ্রেশন পুনরায় প্রয়োগ করুন:
dotnet ef database update
Up
এবং Down
মেথডগুলো ভালোভাবে চেক করুন। নিশ্চিত করুন যে Down
মেথডে সব পরিবর্তন সঠিকভাবে রোলব্যাক হচ্ছে।মাইগ্রেশন আপডেট এবং রোলব্যাক করার প্রক্রিয়া ডেটাবেস স্কিমা এবং মডেলের মধ্যে সঠিক সামঞ্জস্য নিশ্চিত করতে গুরুত্বপূর্ণ ভূমিকা পালন করে। মাইগ্রেশন সঠিকভাবে ব্যবহারের মাধ্যমে আপনি ডেটাবেস পরিবর্তন সহজে পরিচালনা করতে পারবেন এবং প্রোডাকশনে ত্রুটির ঝুঁকি কমাতে পারবেন।
common.read_more