Skill

ডাটাবেস ম্যানেজমেন্ট এবং টেবিল কনফিগারেশন

Web2Py এর Admin Interface - ওয়েব২পাই (Web2Py) - Web Development

252

Web2Py একটি শক্তিশালী ডাটাবেস ম্যানেজমেন্ট সিস্টেম সরবরাহ করে, যা ডেভেলপারদের সহজভাবে ডাটাবেস টেবিল তৈরি এবং কনফিগার করতে সহায়তা করে। Web2Py তে ডাটাবেস ম্যানেজমেন্টের জন্য DAL (Database Abstraction Layer) ব্যবহার করা হয়, যা ডাটাবেসের সাথে সংযোগ স্থাপন, টেবিল তৈরি এবং পরিচালনা করা সহজ করে তোলে।

এখানে Web2Py তে ডাটাবেস ম্যানেজমেন্ট এবং টেবিল কনফিগারেশন সম্পর্কে বিস্তারিত আলোচনা করা হলো।


Web2Py তে ডাটাবেস ম্যানেজমেন্ট

Web2Py তে ডাটাবেস ম্যানেজমেন্টের জন্য DAL (Database Abstraction Layer) ব্যবহার করা হয়। এটি ডেভেলপারদের বিভিন্ন ধরনের ডাটাবেস (যেমন SQLite, MySQL, PostgreSQL) সাপোর্ট করে এবং SQL কুয়েরি করার জন্য Python কোড ব্যবহার করে। আপনি সহজেই ডাটাবেস টেবিল তৈরি, আপডেট, এবং ডিলিট করতে পারবেন।

১. ডাটাবেস কনফিগারেশন

Web2Py তে ডাটাবেস কনফিগারেশনের জন্য সাধারণত models ফোল্ডারে ডাটাবেস সংযোগের জন্য কোড রাখা হয়। আপনি বিভিন্ন ডাটাবেস সিস্টেমের জন্য কনফিগারেশন ফাইল তৈরি করতে পারেন।

SQLite ডাটাবেস সংযোগ:
# models/db.py
db = DAL('sqlite://storage.db')
PostgreSQL ডাটাবেস সংযোগ:
# models/db.py
db = DAL('postgres://username:password@localhost/databasename')
MySQL ডাটাবেস সংযোগ:
# models/db.py
db = DAL('mysql://username:password@localhost/databasename')

এখানে DAL('sqlite://storage.db') দিয়ে SQLite ডাটাবেসের জন্য সংযোগ তৈরি করা হচ্ছে, যেখানে storage.db ফাইলটি ডাটাবেস ফাইল হবে।

২. ডাটাবেস টেবিল তৈরি

Web2Py তে ডাটাবেস টেবিল তৈরি করতে db.define_table() ফাংশন ব্যবহার করা হয়। এই ফাংশনের মাধ্যমে আপনি টেবিলের নাম এবং ফিল্ডসমূহ নির্ধারণ করেন।

উদাহরণ:

# models/db.py
db.define_table('person',
    Field('name', 'string'),
    Field('age', 'integer'),
    Field('email', 'string')
)

এখানে, person নামক একটি টেবিল তৈরি করা হয়েছে, যেখানে তিনটি ফিল্ড রয়েছে:

  • name (string)
  • age (integer)
  • email (string)

৩. ফিল্ড কনফিগারেশন

Web2Py তে টেবিলের ফিল্ড কনফিগার করতে Field() ফাংশন ব্যবহার করা হয়, যেখানে আপনি ফিল্ডের টাইপ এবং অন্যান্য বৈশিষ্ট্য নির্ধারণ করতে পারেন।

ফিল্ড টাইপস:

  • string: স্ট্রিং টাইপ ডেটার জন্য।
  • integer: পূর্ণসংখ্যা (integer) টাইপ ডেটার জন্য।
  • text: বড় টেক্সট ডেটার জন্য।
  • date: তারিখ ডেটার জন্য।
  • datetime: তারিখ এবং সময় ডেটার জন্য।
  • boolean: সত্য/মিথ্যা (True/False) ডেটার জন্য।
  • reference: অন্য একটি টেবিলের রেফারেন্স (foreign key)।

উদাহরণ:

# models/db.py
db.define_table('person',
    Field('name', 'string'),
    Field('age', 'integer'),
    Field('email', 'string', requires=IS_EMAIL())
)

এখানে email ফিল্ডের জন্য IS_EMAIL() ভ্যালিডেটর ব্যবহৃত হয়েছে, যা নিশ্চিত করে যে শুধুমাত্র বৈধ ইমেইল ঠিকানা গ্রহণ করা হবে।

৪. ডাটাবেস রিলেশন (Foreign Keys)

Web2Py তে আপনি ডাটাবেস রিলেশন (foreign keys) তৈরি করতে পারেন। Field('field_name', 'reference table_name') ব্যবহার করে আপনি অন্য একটি টেবিলের রেফারেন্স (foreign key) যোগ করতে পারবেন।

উদাহরণ:

# models/db.py
db.define_table('person',
    Field('name', 'string'),
    Field('age', 'integer'),
    Field('email', 'string'),
    Field('country_id', 'reference country')  # Foreign Key
)

db.define_table('country',
    Field('name', 'string')
)

এখানে, person টেবিলের country_id ফিল্ডটি country টেবিলের একটি রেফারেন্স (foreign key)।


Web2Py তে ডাটাবেস অপারেশন

Web2Py তে ডাটাবেস অপারেশন যেমন insert, select, update, delete করার জন্য DAL ব্যবহৃত হয়।

১. ডাটা ইনসার্ট (Insert Data)

# Insert a new record into the person table
db.person.insert(name="John Doe", age=30, email="john@example.com")

২. ডাটা সিলেক্ট (Select Data)

# Select all rows from the person table
rows = db().select(db.person.ALL)

# Select specific columns
rows = db(db.person.age > 25).select(db.person.name, db.person.email)

৩. ডাটা আপডেট (Update Data)

# Update a record in the person table
db(db.person.name == 'John Doe').update(age=31)

৪. ডাটা ডিলিট (Delete Data)

# Delete a record from the person table
db(db.person.name == 'John Doe').delete()

Web2Py তে ডাটাবেস মাইগ্রেশন

Web2Py তে ডাটাবেস মাইগ্রেশন খুব সহজ। আপনি যখন নতুন টেবিল তৈরি বা পুরানো টেবিলের কাঠামো পরিবর্তন করবেন, তখন আপনি migrate=True প্যারামিটার ব্যবহার করতে পারেন।

# models/db.py
db.define_table('person',
    Field('name', 'string'),
    Field('age', 'integer'),
    migrate=True  # Enabling migration
)

এটি ডাটাবেসের টেবিলগুলোর পরিবর্তন ট্র্যাক করে এবং আপডেট করার সময় পুরনো ডাটাবেস ফাইল থেকে নতুন কাঠামোতে ডেটা মাইগ্রেট করে।


সারাংশ

Web2Py তে ডাটাবেস ম্যানেজমেন্ট এবং টেবিল কনফিগারেশন অত্যন্ত সহজ এবং কার্যকর। DAL (Database Abstraction Layer) এর মাধ্যমে আপনি সহজেই ডাটাবেস টেবিল তৈরি, রিলেশনসেট, ডেটা অপারেশন এবং মাইগ্রেশন পরিচালনা করতে পারেন। SQLFORM ব্যবহার করে আপনি ডাটাবেসের সাথে ইন্টারঅ্যাক্টিভ ফর্ম তৈরি করতে পারবেন, যা ডেভেলপারদের ডেটাবেস ম্যানেজমেন্ট প্রক্রিয়াকে আরও সহজ করে তোলে।

Content added By
Promotion

Are you sure to start over?

Loading...