বাংলায় জ্যাঙ্গো

অনেক সময় আমাদের কিছু কাজ একসাথে করতে হয়। যদি এই সমষ্টিগত কাজের কোন এক অংশ শেষ না হয় তাহলে আবার পুর্বের অবস্থায় ফিরিয়ে নেওয়াকে রোল ব্যাক বলে। যেমন ধরুন আপনি স্টুডেন্টের ডাটাবেজ তৈরী করছেন । আপনাকে এখন দুইটা টেবিলে ডাটা রাখতে হবে।

১। student_list

২্। student_profile

এখন শর্ত হল যদি দুইটা টেবিলেই ডাটা না ইনসার্ট হয় তাহলে কোন টেবিলেই ডাটা ইনসার্ট হবে না। কারন অনেক সময় student_list এ ডাটা ইনসার্ট হয়ে গেল কিন্তু student_profile এ ডাটা  ইনসার্ট করতে গিয়ে কোন সমস্যার কারনে ডাটা ইনসার্ট হল না। এখন তাহলে আমাদের student_list টেবিল থেকেও ডাটা ফিরিয়ে আনতে হবে। এই ধারনাটিকে বলে ডাটাবেজ রোলব্যাক।

জ্যাঙ্গো এই কাজটি খুব সহজে করার জন্য transaction নামে একটা মডিউল দিচ্ছে। tansaction.atomic ব্যাবহার করে কিভাবে কাজটি করা যায় দেখে নিই:

from django.db import transaction

@transaction.atomic
def create_student(request):
    Student.objests.create(...)
    StudentProfile.objects.create(...)

try, execption ব্যাবহার করে কাজটি করার জন্য

from django.db import transaction


def create_student(request):
    try:
        with transaction.atomic():
            Student.objests.create(...)
            StudentProfile.objects.create(...)
    except:
        do_something

 

আশা করি এখন খুব সহজে ডাটাবেজ roll back এর কাজটি করতে পারবেন

Leave a Reply

avatar
  Subscribe  
Notify of