Flask-Migrate একটি খুবই শক্তিশালী এক্সটেনশন, যা SQLAlchemy-এর সঙ্গে ব্যবহৃত হয় এবং ডাটাবেস স্কিমা মাইগ্রেশনগুলো খুব সহজে পরিচালনা করতে সাহায্য করে। Flask-Migrate মূলত Alembic-এর উপর ভিত্তি করে কাজ করে, যা একটি SQLAlchemy স্কিমার জন্য মাইগ্রেশন পরিচালনার জন্য ব্যবহৃত একটি টুল।
এখানে Flask-Migrate ব্যবহার করে schema migration কনফিগার করার ধাপগুলো দেওয়া হলো:
ধাপ ১: প্রয়োজনীয় প্যাকেজ ইনস্টল করা
প্রথমে, Flask এবং Flask-Migrate প্যাকেজগুলো ইনস্টল করতে হবে।
pip install Flask Flask-SQLAlchemy Flask-Migrate
ধাপ ২: Flask অ্যাপ তৈরি করা
এখন একটি Flask অ্যাপ তৈরি করুন এবং SQLAlchemy এবং Flask-Migrate কনফিগার করুন।
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
from flask_migrate import Migrate
app = Flask(__name__)
# ডাটাবেস URI সেট করুন (এটা আপনার ডাটাবেসের সাথে সম্পর্কিত হবে)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///app.db'
# SQLAlchemy ইনস্ট্যান্স
db = SQLAlchemy(app)
# Flask-Migrate ইনস্ট্যান্স
migrate = Migrate(app, db)
# অ্যাপ তৈরি করার পর, মডেলগুলো ডিফাইন করুন
class User(db.Model):
id = db.Column(db.Integer, primary_key=True)
username = db.Column(db.String(80), unique=True, nullable=False)
class Post(db.Model):
id = db.Column(db.Integer, primary_key=True)
title = db.Column(db.String(120), nullable=False)
body = db.Column(db.Text, nullable=False)
# অ্যাপ রান করুন
if __name__ == '__main__':
app.run(debug=True)
ধাপ ৩: মাইগ্রেশন ফোল্ডার তৈরি করা
এখন flask db কমান্ড দিয়ে মাইগ্রেশন ফোল্ডার তৈরি করতে হবে। এই ফোল্ডারটি ডাটাবেস স্কিমার পরিবর্তনগুলোর ট্র্যাক রাখে।
flask db init
এই কমান্ড চালানোর মাধ্যমে migrations নামের একটি ফোল্ডার তৈরি হবে যেখানে মাইগ্রেশন স্ক্রিপ্টগুলো রাখা হবে।
ধাপ ৪: মডেল পরিবর্তন করা
মডেলগুলোতে যদি কোনো পরিবর্তন করতে চান, যেমন নতুন কলাম যোগ করা বা কোনো ফিল্ড পরিবর্তন করা, তাহলে সেগুলো সংশোধন করুন। উদাহরণস্বরূপ, একটি নতুন কলাম email যোগ করা:
class User(db.Model):
id = db.Column(db.Integer, primary_key=True)
username = db.Column(db.String(80), unique=True, nullable=False)
email = db.Column(db.String(120), unique=True, nullable=False) # নতুন কলাম
ধাপ ৫: মাইগ্রেশন স্ক্রিপ্ট জেনারেট করা
মডেল পরিবর্তন করার পর, Flask-Migrate flask db migrate কমান্ড ব্যবহার করে মাইগ্রেশন স্ক্রিপ্ট তৈরি করতে পারে। এই স্ক্রিপ্টটি ডাটাবেসের বর্তমান স্কিমা থেকে নতুন স্কিমা তৈরির জন্য ব্যবহৃত হবে।
flask db migrate -m "Add email column to User model"
এটি migrations/versions/ ফোল্ডারে একটি স্ক্রিপ্ট তৈরি করবে, যা ডাটাবেসের স্কিমা পরিবর্তন পরিচালনা করবে।
ধাপ ৬: মাইগ্রেশন প্রয়োগ করা
স্ক্রিপ্টটি তৈরি হওয়ার পর, আপনি মাইগ্রেশনটি ডাটাবেসে প্রয়োগ করতে পারবেন flask db upgrade কমান্ডের মাধ্যমে।
flask db upgrade
এই কমান্ডটি ডাটাবেসে স্কিমা পরিবর্তনগুলো প্রয়োগ করবে এবং নতুন কলাম বা টেবিল তৈরি করবে।
ধাপ ৭: মাইগ্রেশন স্ট্যাটাস চেক করা
আপনি flask db current কমান্ড ব্যবহার করে দেখতে পারেন, বর্তমানে কোন মাইগ্রেশন ডাটাবেসে প্রয়োগ হয়েছে।
flask db current
এছাড়া, আপনি flask db history কমান্ড দিয়ে মাইগ্রেশন ইতিহাস দেখতে পারেন।
flask db history
ধাপ ৮: ডাটাবেস রিভার্স ব্যাকআপ
যদি কোনো কারণে আপনি মাইগ্রেশনটি রিভার্স করতে চান, তাহলে flask db downgrade কমান্ড ব্যবহার করতে পারেন।
flask db downgrade
এটি শেষ মাইগ্রেশন স্টেপে ফিরে যাবে এবং আপনার ডাটাবেস স্কিমা পূর্বাবস্থায় ফিরে আসবে।
ধাপ ৯: অ্যাপ রান করা
সবশেষে, Flask অ্যাপটি চালু করুন এবং মাইগ্রেশনগুলো ঠিকভাবে কাজ করছে কিনা তা পরীক্ষা করুন।
python app.py
এটি ছিল Flask-Migrate দিয়ে schema migration কনফিগার করার ধাপগুলো। এই পদ্ধতি ব্যবহার করে আপনি আপনার Flask অ্যাপের ডাটাবেস স্কিমা পরিবর্তনগুলো খুব সহজে পরিচালনা করতে পারবেন।
Read more