TinyDB একটি হালকা ওজনের, JSON ভিত্তিক ডাটাবেস, যা সার্ভার-মুক্ত এবং সহজে ব্যবহৃত হয়। তবে, যেহেতু এটি একটি ফাইল-ভিত্তিক ডাটাবেস, তাই ডেটাবেসের ব্যাকআপ এবং রিস্টোর করার জন্য আপনি বিভিন্ন External Tools ব্যবহার করতে পারেন। এই প্রক্রিয়াটি বিশেষত তখন দরকারি, যখন আপনি ফাইল সিস্টেম এবং ডাটাবেস ফাইল নিয়ে কাজ করছেন এবং ডেটা নিরাপত্তা ও রক্ষণাবেক্ষণের জন্য ব্যাকআপ এবং রিস্টোর প্রয়োজন।
Backup এবং Restore এর জন্য সাধারণভাবে ব্যবহৃত External Tools
- Shutil (Python Library)
- rsync (Command-line Tool)
- Git (Version Control System)
- Cloud Storage (Google Drive, Dropbox, AWS S3)
১. Shutil (Python Library)
Shutil হল একটি Python লাইব্রেরি যা ফাইল এবং ডিরেক্টরি কপি, মুভ এবং ব্যাকআপের জন্য ব্যবহৃত হয়। TinyDB ডাটাবেসের JSON ফাইলের ব্যাকআপ নিতে এটি খুবই কার্যকর।
উদাহরণ: TinyDB Backup এবং Restore করার জন্য shutil ব্যবহার
import shutil
from tinydb import TinyDB
# ডাটাবেস তৈরি
db = TinyDB('db.json')
# ব্যাকআপ ফাংশন
def backup_database():
shutil.copy('db.json', 'db_backup.json') # ডাটাবেস ফাইলের ব্যাকআপ
print("Database backup completed.")
# রিস্টোর ফাংশন
def restore_database():
shutil.copy('db_backup.json', 'db.json') # ব্যাকআপ থেকে ডাটাবেস পুনরুদ্ধার
print("Database restore completed.")
# ব্যাকআপ এবং রিস্টোরের কার্যকলাপ
backup_database()
restore_database()
এখানে, shutil.copy ফাংশনটি ব্যাকআপ এবং রিস্টোর করার জন্য ব্যবহৃত হচ্ছে। backup_database ফাংশনটি ডাটাবেস ফাইলের কপি তৈরি করে এবং restore_database ফাংশনটি ব্যাকআপ করা ফাইলটি পুনরুদ্ধার করে।
২. rsync (Command-line Tool)
rsync একটি জনপ্রিয় কমান্ড-লাইন টুল যা ফাইল সিঙ্ক্রোনাইজেশনের জন্য ব্যবহৃত হয়। এটি দ্রুত এবং কার্যকরভাবে ব্যাকআপ তৈরি করতে সাহায্য করে এবং রিস্টোর করার জন্যও ব্যবহৃত হতে পারে।
উদাহরণ: rsync ব্যবহার করে ব্যাকআপ এবং রিস্টোর
# ব্যাকআপ তৈরি করা
rsync -av --progress db.json /path/to/backup/location/
# রিস্টোর করা
rsync -av /path/to/backup/location/db.json /path/to/database/location/
এখানে, rsync কমান্ডটি ডাটাবেস ফাইলটি একটি নির্দিষ্ট লোকেশনে ব্যাকআপ করে এবং পরে রিস্টোর করতে সাহায্য করে।
৩. Git (Version Control System)
Git একটি ভার্সন কন্ট্রোল সিস্টেম যা সাধারণত সোর্স কোড ট্র্যাকিংয়ের জন্য ব্যবহৃত হয়, তবে আপনি Git ব্যবহার করে TinyDB ডাটাবেসের JSON ফাইলেরও ব্যাকআপ এবং রিস্টোর করতে পারেন। এটি বিশেষত ডাটাবেসের অতীত সংস্করণগুলো ট্র্যাক করার জন্য কার্যকর।
উদাহরণ: Git ব্যবহার করে ব্যাকআপ এবং রিস্টোর
# Git repository তৈরি করুন
git init
# ডাটাবেস ফাইলটিকে Git-এ যোগ করুন
git add db.json
git commit -m "Initial commit for database backup"
# ব্যাকআপ তৈরি করা
git push origin main
# রিস্টোর করার জন্য Git ব্যবহার
git pull origin main
এখানে, git init কমান্ডের মাধ্যমে একটি Git repository তৈরি করে TinyDB ফাইলকে Git-এর মাধ্যমে ব্যাকআপ এবং রিস্টোর করা হচ্ছে।
৪. Cloud Storage (Google Drive, Dropbox, AWS S3)
আপনি Cloud Storage (যেমন Google Drive, Dropbox, AWS S3) ব্যবহার করে TinyDB ডাটাবেস ফাইলের ব্যাকআপ তৈরি এবং রিস্টোর করতে পারেন। আপনি Python SDK বা API ব্যবহার করে এই পরিষেবাগুলির সাথে সংযোগ করতে পারেন।
উদাহরণ: Google Drive-এ ব্যাকআপ এবং রিস্টোর
Google Drive-এ ব্যাকআপ নেওয়ার জন্য google-drive-api লাইব্রেরি ব্যবহার করতে পারেন।
from googleapiclient.discovery import build
from googleapiclient.http import MediaFileUpload
# Google Drive API দিয়ে ব্যাকআপ ফাইল আপলোড
def upload_to_drive(file_path):
drive_service = build('drive', 'v3', credentials=credentials) # credentials গ্রহণ করা
media = MediaFileUpload(file_path, mimetype='application/json')
file = drive_service.files().create(media_body=media).execute()
print(f"File uploaded: {file['name']}")
# ব্যাকআপ ফাইল আপলোড করা
upload_to_drive('db.json')
এখানে, Google Drive API ব্যবহার করে TinyDB ডাটাবেস ফাইলটি ক্লাউডে আপলোড করা হচ্ছে।
সারাংশ
- Shutil (Python Library): সহজ এবং কার্যকর ব্যাকআপ ও রিস্টোর করার জন্য Python লাইব্রেরি, যা
copyফাংশনের মাধ্যমে ফাইল কপি করতে সাহায্য করে। - rsync (Command-line Tool): দ্রুত এবং কার্যকর ব্যাকআপ এবং রিস্টোর করার জন্য কমান্ড-লাইন টুল।
- Git (Version Control): ফাইলের অতীত সংস্করণ ট্র্যাক এবং ব্যাকআপ করতে ব্যবহার করা হয়।
- Cloud Storage (Google Drive, Dropbox, AWS S3): ক্লাউড স্টোরেজ ব্যবহার করে ডাটাবেস ফাইলের ব্যাকআপ এবং রিস্টোর করতে Python API ব্যবহার করা যায়।
এই External Tools ব্যবহার করে আপনি সহজেই TinyDB ডাটাবেসের ব্যাকআপ এবং রিস্টোর কার্যক্রম পরিচালনা করতে পারবেন।
Read more