NHibernate এ Schema Export এবং Import হল দুটি গুরুত্বপূর্ণ টেকনিক যা ডেটাবেসের স্কিমা তৈরি (export) এবং ডেটাবেসে স্কিমা থেকে ডেটা আমদানি (import) করার জন্য ব্যবহৃত হয়। এই টেকনিকগুলি বিশেষভাবে হিবারনেট মডেল (Hibernate model) থেকে ডেটাবেস স্কিমা এবং ডেটা ম্যানেজমেন্টের জন্য খুবই কার্যকরী।
এখানে NHibernate এ Schema Export এবং Import করার পদ্ধতি আলোচনা করা হচ্ছে।
১. Schema Export
Schema Export একটি প্রক্রিয়া যেখানে NHibernate মডেল থেকে ডেটাবেস স্কিমা (যেমন টেবিল, কলাম, কনস্ট্রেইন্ট) তৈরি করে। আপনি যখন NHibernate এর মডেল ফাইল তৈরি করেন, তখন আপনি Schema Export ব্যবহার করে সেগুলি ডেটাবেসে প্রয়োগ করতে পারেন।
Schema Export কনফিগার করা
NHibernate কনফিগারেশনে hbm2ddl.auto প্রপার্টি ব্যবহার করা হয় স্কিমা এক্সপোর্টের জন্য। এই প্রপার্টি দ্বারা আপনি স্কিমা আপডেট, তৈরি, বা যাচাই করতে পারেন।
এখানে কিছু উদাহরণ দেওয়া হল:
<hibernate-configuration>
<session-factory>
<!-- স্কিমা এক্সপোর্ট কনফিগারেশন -->
<property name="hibernate.hbm2ddl.auto">update</property> <!-- হিবারনেট স্কিমা আপডেট করবে -->
<property name="hibernate.dialect">NHibernate.Dialect.MsSql2008Dialect</property>
<property name="hibernate.connection.connection_string">Data Source=YourServer;Initial Catalog=YourDatabase;Integrated Security=True</property>
<!-- অন্যান্য কনফিগারেশন -->
</session-factory>
</hibernate-configuration>
এখানে:
- hibernate.hbm2ddl.auto: এটি স্কিমার কাজ পরিচালনা করে:
create: ডেটাবেসে টেবিল তৈরি করবে।update: ডেটাবেসে স্কিমা আপডেট করবে।validate: ডেটাবেসে স্কিমা যাচাই করবে।create-drop: অ্যাপ্লিকেশন বন্ধ হওয়ার পর টেবিলগুলো মুছে ফেলবে।
Schema Export কোডে ব্যবহার করা
আপনি যদি প্রোগ্রামেটিকালি স্কিমা এক্সপোর্ট করতে চান, তবে নিচের মতো কোড ব্যবহার করতে পারেন:
using NHibernate.Tool.hbm2ddl;
using NHibernate.Cfg;
using System;
public class SchemaExportExample
{
public static void ExportSchema()
{
var configuration = new Configuration();
configuration.Configure(); // hibernate.cfg.xml থেকে কনফিগারেশন লোড হবে
// SchemaExport তৈরি করা
var schemaExport = new SchemaExport(configuration);
// স্কিমা এক্সপোর্ট করা (SQL স্ক্রিপ্ট আউটপুট হিসাবে)
schemaExport.Create(false, true); // প্রথম প্যারামিটারটি ডেটাবেসে তৈরি করবে না, দ্বিতীয় প্যারামিটারটি স্ক্রিপ্ট তৈরি করবে।
}
}
এখানে:
Create(false, true)পদ্ধতিটি স্কিমা SQL স্ক্রিপ্ট তৈরি করবে এবং তা কনসোলে প্রিন্ট করবে।falseডেটাবেসে টেবিল তৈরি করবে না, তবে SQL স্ক্রিপ্ট তৈরি করবে।
২. Schema Import
Schema Import হল একটি প্রক্রিয়া যেখানে ডেটাবেসে বিদ্যমান স্কিমা থেকে ডেটা ইনপোর্ট করা হয়। NHibernate সাধারণত স্কিমা ইমপোর্ট করতে ব্যবহৃত হয় যখন আপনার ডেটাবেসে পূর্বে তৈরি স্কিমা রয়েছে এবং আপনি সেই স্কিমার সঙ্গে মডেল ট্যাবলেটিকে ম্যাপ করতে চান।
Schema Import কোডে ব্যবহার করা
যদি আপনি একটি বিদ্যমান ডেটাবেস স্কিমা ইমপোর্ট করতে চান, তবে NHibernate এর SchemaExport ক্লাস ব্যবহার করতে পারেন। তবে এই ক্ষেত্রে, hbm2ddl.auto প্রপার্টি validate হিসেবে সেট করা উচিত যাতে এটি বিদ্যমান স্কিমার সাথে মডেল মেলানোর চেষ্টা করে।
<hibernate-configuration>
<session-factory>
<!-- স্কিমা যাচাই (Import) কনফিগারেশন -->
<property name="hibernate.hbm2ddl.auto">validate</property>
<property name="hibernate.dialect">NHibernate.Dialect.MsSql2008Dialect</property>
<property name="hibernate.connection.connection_string">Data Source=YourServer;Initial Catalog=YourDatabase;Integrated Security=True</property>
<!-- অন্যান্য কনফিগারেশন -->
</session-factory>
</hibernate-configuration>
এখানে:
- hibernate.hbm2ddl.auto = validate: এটি ডেটাবেসের স্কিমা যাচাই করবে এবং যদি কোনো পরিবর্তন থাকে, তবে একটি ত্রুটি জানাবে।
Schema Import - টেবিল ম্যাপিং
কিছু ক্ষেত্রে, আপনি যদি NHibernate XML Mapping বা Fluent NHibernate ব্যবহার করে মডেল তৈরি করে থাকেন, তবে স্কিমা ইমপোর্ট করার জন্য আপনাকে কেবলমাত্র SessionFactory কনফিগারেশন করতে হবে যাতে NHibernate বিদ্যমান স্কিমার সাথে মেলাতে পারে।
using NHibernate;
using NHibernate.Cfg;
public class SchemaImportExample
{
public static void ImportSchema()
{
var configuration = new Configuration();
configuration.Configure(); // hibernate.cfg.xml থেকে কনফিগারেশন লোড হবে
// বিদ্যমান স্কিমার সাথে মডেল ইন্টিগ্রেট করা
var sessionFactory = configuration.BuildSessionFactory();
using (var session = sessionFactory.OpenSession())
{
// ডেটাবেস অপারেশন করতে পারেন (যেমন ডেটা লোড করা)
}
}
}
এখানে:
- SessionFactory কনফিগারেশন দিয়ে, বিদ্যমান ডেটাবেস স্কিমার সাথে অ্যাপ্লিকেশন যুক্ত করা হচ্ছে।
৩. SQL Script Export
আপনি যদি শুধুমাত্র SQL স্ক্রিপ্ট চাচ্ছেন, তাহলে NHibernate এর SchemaExport ব্যবহার করে SQL স্ক্রিপ্ট এক্সপোর্ট করা যেতে পারে যা ডেটাবেসে প্রয়োগ করতে পারবেন। এটি Create বা Update অপারেশন দ্বারা SQL স্ক্রিপ্ট জেনারেট করতে সক্ষম।
var configuration = new Configuration();
configuration.Configure(); // hibernate.cfg.xml থেকে কনফিগারেশন লোড হবে
var schemaExport = new SchemaExport(configuration);
schemaExport.Create(true, true); // true: SQL স্ক্রিপ্ট আউটপুট
এখানে:
Create(true, true)পদ্ধতি SQL স্ক্রিপ্ট জেনারেট করবে এবং ফাইল আউটপুট হিসেবে তৈরি করবে।
সারাংশ
- Schema Export: এটি ডেটাবেসের স্কিমা তৈরি বা আপডেট করার জন্য ব্যবহৃত হয়।
- Schema Import: এটি বিদ্যমান ডেটাবেস স্কিমা যাচাই বা ম্যাপ করার জন্য ব্যবহৃত হয়।
- SQL Script Export: SQL স্ক্রিপ্ট তৈরি করতে এটি ব্যবহৃত হয় যা আপনি ডেটাবেসে প্রয়োগ করতে পারেন।
NHibernate এ Schema Export এবং Import টেকনিকগুলি ডেটাবেস স্কিমা ম্যানেজমেন্ট এবং ডেটাবেস ইন্টিগ্রেশনকে সহজ ও কার্যকরী করে।
Read more