Database Migrations এবং Flask-Migrate ব্যবহার করা

Flask এবং Database Integration - ফ্লাস্ক (Flask) - Web Development

234

Flask-এ Database Migrations ব্যবহার করা একটি গুরুত্বপূর্ণ প্রক্রিয়া যা ডাটাবেসের স্কিমাতে (schema) পরিবর্তন করার জন্য সাহায্য করে। এটি ডাটাবেসের কাঠামোকে নিরাপদে এবং নিয়ন্ত্রিতভাবে পরিবর্তন করার একটি উপায়, যাতে ডাটাবেসের তথ্য হারানো না যায়। Flask-Migrate একটি জনপ্রিয় এক্সটেনশন যা Flask অ্যাপ্লিকেশনগুলিতে মাইগ্রেশন পরিচালনা করতে Alembic ব্যবহার করে। এটি সহজে ডাটাবেসের স্কিমা পরিবর্তন এবং মাইগ্রেশন প্রক্রিয়া পরিচালনা করতে সহায়ক।


১. Flask-Migrate ইনস্টলেশন

Flask-Migrate ব্যবহার করতে হলে প্রথমে এটি ইনস্টল করতে হবে।

Flask-Migrate ইনস্টল করুন:

pip install flask-migrate

২. Flask-Migrate কনফিগারেশন

Flask-Migrate ব্যবহারের জন্য আপনাকে Flask-SQLAlchemy এবং Flask-Migrate একসাথে কনফিগার করতে হবে।

Flask-SQLAlchemy ইনস্টল করুন:

pip install flask-sqlalchemy

Flask অ্যাপ্লিকেশন সেটআপ:

এখন, একটি Flask অ্যাপ্লিকেশন তৈরি করে Flask-SQLAlchemy এবং Flask-Migrate সেটআপ করুন।

from flask import Flask
from flask_sqlalchemy import SQLAlchemy
from flask_migrate import Migrate

# অ্যাপ এবং ডাটাবেস কনফিগারেশন
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///app.db'  # SQLite ডাটাবেস
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False

# ডাটাবেস এবং মাইগ্রেট ইনস্ট্যান্স তৈরি
db = SQLAlchemy(app)
migrate = Migrate(app, db)

# ডাটাবেস মডেল তৈরি
class User(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(100), nullable=False)

if __name__ == "__main__":
    app.run(debug=True)

এখানে:

  • SQLALCHEMY_DATABASE_URI: ডাটাবেস URI সেট করা হয়েছে। এখানে আমরা sqlite:///app.db ব্যবহার করছি।
  • SQLALCHEMY_TRACK_MODIFICATIONS: Flask-SQLAlchemy-এর অতিরিক্ত অস্বাভাবিক কাজ বন্ধ করতে এটি False করা হয়েছে।

৩. মাইগ্রেশন ফাইল তৈরি করা

এখন মাইগ্রেশন সিস্টেমের জন্য প্রথম ফাইল তৈরি করতে হবে। এটি করতে flask db init কমান্ডটি চালান।

মাইগ্রেশন সেটআপ:

flask db init

এটি একটি migrations/ ফোল্ডার তৈরি করবে, যেখানে মাইগ্রেশন স্ক্রিপ্ট এবং ডাটাবেস মাইগ্রেশন সম্পর্কিত তথ্য থাকবে।

মডেল পরিবর্তন (যদি থাকে):

যদি আপনি নতুন কোনো মডেল বা কলাম তৈরি করেন, তাহলে Flask-Migrate এটি সনাক্ত করবে।

মাইগ্রেশন ফাইল তৈরি:

flask db migrate -m "Initial migration"

এটি একটি নতুন মাইগ্রেশন স্ক্রিপ্ট তৈরি করবে যা আপনার ডাটাবেসের বর্তমান কাঠামোকে পরবর্তী স্তরে নিয়ে যাবে।


৪. ডাটাবেস আপডেট করা

মাইগ্রেশন স্ক্রিপ্ট তৈরি হওয়ার পর, আপনাকে ডাটাবেসে এই পরিবর্তনগুলি প্রয়োগ করতে হবে।

flask db upgrade

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


৫. মাইগ্রেশন যাচাই করা

আপনি যদি মডেলে কোনো পরিবর্তন করেন এবং ডাটাবেসে তা রিফ্লেক্ট না হয়, তবে আবার মাইগ্রেশন করতে হবে।

  1. মাইগ্রেশন স্ক্রিপ্ট তৈরি করুন:

    flask db migrate -m "Added new field"
    
  2. আপগ্রেড করুন:

    flask db upgrade
    

৬. মাইগ্রেশন রোলব্যাক করা

যদি আপনি পূর্ববর্তী মাইগ্রেশন অবস্থায় ফিরে যেতে চান, তাহলে downgrade কমান্ড ব্যবহার করতে পারেন।

flask db downgrade

এটি ডাটাবেসের মাইগ্রেশন স্তরকে পূর্ববর্তী অবস্থায় ফিরিয়ে নেবে।


৭. Flask-Migrate এর অন্যান্য কমান্ড

১. মাইগ্রেশন ইতিহাস দেখতে:

flask db history

এটি আপনার মাইগ্রেশন ইতিহাস দেখাবে, যাতে আপনি কোন সংস্করণ থেকে ডেটাবেস চলছে তা জানতে পারবেন।

২. ডাটাবেসে পলিগ্রাউন্ড অ্যাপ্লাই করা:

flask db stamp head

এটি আপনার ডাটাবেসকে মাইগ্রেশনের সর্বশেষ সংস্করণে সিল (stamp) করে দেবে, বিশেষ করে যখন আপনি ডাটাবেসে কোন পরিবর্তন না করলেও শুধু মাইগ্রেশন ইতিহাস আপডেট করতে চান।


Flask-Migrate এবং Alembic ব্যবহার করে Flask অ্যাপ্লিকেশনে Database Migrations পরিচালনা করা খুবই সহজ এবং কার্যকর। এই প্রক্রিয়া ডাটাবেসে স্কিমার পরিবর্তনগুলো নিরাপদে এবং নিয়ন্ত্রিতভাবে বাস্তবায়ন করতে সাহায্য করে। Flask-Migrate ব্যবহার করে ডাটাবেসের কাঠামো আপডেট করা, রোলব্যাক করা এবং মাইগ্রেশন ইতিহাস পরিচালনা করা সম্ভব।

Content added By
Promotion

Are you sure to start over?

Loading...