Flask এবং SQLAlchemy একটি জনপ্রিয় কম্বিনেশন যা Python-এ ওয়েব অ্যাপ্লিকেশন ডেভেলপমেন্টের জন্য ব্যবহৃত হয়। Flask একটি মাইক্রো ফ্রেমওয়ার্ক, এবং SQLAlchemy একটি শক্তিশালী ORM (Object-Relational Mapping) লাইব্রেরি, যা ডেটাবেসের সঙ্গে ইন্টারঅ্যাকশন সহজ করে তোলে। এখানে Flask অ্যাপ্লিকেশনের সঙ্গে SQLAlchemy ইন্টিগ্রেট করার প্রক্রিয়া আলোচনা করা হয়েছে।
Flask এবং SQLAlchemy ইনস্টলেশন
প্রথমে Flask এবং SQLAlchemy ইনস্টল করতে হবে। যদি আপনার সিস্টেমে প্যাকেজগুলো ইনস্টল না থাকে, তবে pip ব্যবহার করে এটি ইনস্টল করতে হবে:
pip install Flask
pip install Flask-SQLAlchemy
Flask অ্যাপ্লিকেশন তৈরি এবং SQLAlchemy কনফিগারেশন
এখন, একটি Flask অ্যাপ্লিকেশন তৈরি করি এবং SQLAlchemy কনফিগারেশন সেট করি।
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
app = Flask(__name__)
# ডেটাবেস URI সেট করুন (এখানে SQLite ব্যবহার করা হয়েছে)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///site.db'
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
# SQLAlchemy ইনিশিয়ালাইজেশন
db = SQLAlchemy(app)
@app.route('/')
def home():
return "Flask এবং SQLAlchemy ইন্টিগ্রেটেড!"
if __name__ == '__main__':
app.run(debug=True)
এই কোডে আমরা একটি SQLite ডেটাবেস site.db তৈরি করেছি, যা অ্যাপ্লিকেশনের রুট ফোল্ডারে থাকবে। SQLALCHEMY_TRACK_MODIFICATIONS কনফিগারেশনটি আমাদের ডেটাবেস ট্র্যাকিংয়ের জন্য অতিরিক্ত মেমরি ব্যবহার বন্ধ করতে সাহায্য করবে।
মডেল তৈরি
SQLAlchemy দিয়ে ডেটাবেস টেবিল তৈরি করতে হলে প্রথমে একটি মডেল (class) তৈরি করতে হবে, যা ডেটাবেসের একটি টেবিলের প্রতিনিধিত্ব করবে। এখানে একটি User মডেল তৈরি করা হয়েছে।
class User(db.Model):
id = db.Column(db.Integer, primary_key=True)
username = db.Column(db.String(120), unique=True, nullable=False)
email = db.Column(db.String(120), unique=True, nullable=False)
def __repr__(self):
return f"User('{self.username}', '{self.email}')"
এই কোডে:
Userক্লাসটিdb.Modelথেকে উত্তরাধিকারসূত্রে প্রাপ্ত।id,username, এবংemailকলামগুলি ডেটাবেস টেবিলের কলাম প্রতিনিধিত্ব করে।__repr__ফাংশনটি প্রিন্ট করলে ব্যবহারকারী অবজেক্টটির একটি সুন্দর রেন্ডারিং প্রদান করবে।
ডেটাবেস মাইগ্রেশন
ডেটাবেস টেবিল তৈরি করার জন্য প্রথমে মাইগ্রেশন চালাতে হবে। এর জন্য Flask-Migrate প্যাকেজ ব্যবহার করা যেতে পারে।
- Flask-Migrate ইনস্টল করুন:
pip install Flask-Migrate
- আপনার অ্যাপ্লিকেশন ফাইলে Flask-Migrate যোগ করুন:
from flask_migrate import Migrate
migrate = Migrate(app, db)
- এখন মাইগ্রেশন কমান্ডগুলো চালানোর জন্য Flask-Script যোগ করুন (অথবা সরাসরি
flaskকমান্ড ব্যবহার করতে পারেন)।
ডেটাবেসে ডেটা ইনসার্ট করা
ডেটাবেসে নতুন ইউজার ইনসার্ট করার জন্য নিম্নলিখিত কোড ব্যবহার করা যেতে পারে:
@app.route('/create_user')
def create_user():
user = User(username='john_doe', email='john@example.com')
db.session.add(user)
db.session.commit()
return f'User {user.username} has been created!'
এই রুটে:
db.session.add(user)ইউজার অবজেক্টটিকে সেশনটিতে যোগ করবে।db.session.commit()ডেটাবেসে পরিবর্তন সংরক্ষণ করবে।
ডেটাবেস থেকে ডেটা রিট্রিভ করা
ডেটাবেস থেকে ইউজারের তথ্য রিট্রিভ করতে এই কোড ব্যবহার করতে পারেন:
@app.route('/get_users')
def get_users():
users = User.query.all() # সকল ইউজারকে রিট্রিভ করবে
return '<br>'.join([f"{user.username}: {user.email}" for user in users])
এখানে User.query.all() ডেটাবেসের সকল ইউজারকে রিটার্ন করবে। আপনি অন্যান্য ধরনের কোয়েরি যেমন filter(), first(), get() ইত্যাদি ব্যবহার করতে পারেন।
সারাংশ
Flask এবং SQLAlchemy একত্রে ব্যবহারে ওয়েব অ্যাপ্লিকেশন ডেভেলপমেন্ট অনেক সহজ হয়ে যায়। SQLAlchemy আপনাকে ডেটাবেস পরিচালনা করার জন্য ORM সমাধান প্রদান করে, যাতে SQL কোড লেখার প্রয়োজন নেই, শুধু Python কোডের মাধ্যমে ডেটাবেস ম্যানিপুলেশন সম্ভব হয়। Flask-এর সিম্পল স্ট্রাকচার এবং SQLAlchemy-এর শক্তিশালী ORM ক্ষমতা অ্যাপ্লিকেশন ডেভেলপমেন্টকে আরও সহজ এবং দ্রুত করে তোলে।
Flask-SQLAlchemy হল Flask ফ্রেমওয়ার্কের জন্য একটি extension যা SQLAlchemy ORM (Object Relational Mapping) ব্যবহার করতে সহজ করে তোলে। SQLAlchemy একটি জনপ্রিয় পাইথন লাইব্রেরি যা রিলেশনাল ডাটাবেসের সাথে যোগাযোগ করতে সাহায্য করে এবং ডাটাবেস অপারেশনগুলিকে অরম (ORM) প্যাটার্নের মাধ্যমে পরিচালনা করতে সহায়ক। Flask-SQLAlchemy এই প্যাকেজটি Flask অ্যাপ্লিকেশনগুলির সাথে SQLAlchemy কে ইন্টিগ্রেট করার জন্য সরল এবং কার্যকরী উপায় প্রদান করে।
Flask-SQLAlchemy এর প্রয়োজনীয়তা
Flask-SQLAlchemy ব্যবহার করার জন্য কিছু গুরুত্বপূর্ণ কারণ রয়েছে:
- বৃহৎ ডাটাবেস পরিচালনা সহজ করা
Flask-SQLAlchemy ডাটাবেসের সাথে কাজ করা সহজ করে তোলে। SQLAlchemy এর মাধ্যমে SQL কোড লেখার প্রয়োজন পড়ে না, এর বদলে Python ক্লাসের মাধ্যমে ডাটাবেস মডেল তৈরি করা যায়। - ডাটাবেস অপারেশন অটোমেশন
Flask-SQLAlchemy ব্যবহার করলে ডাটাবেস অপারেশন যেমন INSERT, UPDATE, DELETE, SELECT এই সবগুলো অটোমেটিক্যালি ORM এর মাধ্যমে করা যায়, যা অনেক সহজ এবং দ্রুত। - অর্ডার করা কোড
ORM স্টাইলের কোড লেখার ফলে কোড আরও বেশি সুসংগঠিত এবং রিডেবল হয়ে ওঠে। ডাটাবেসের টেবিল গুলি Python ক্লাস হিসেবে তৈরি করা হয়, যার মধ্যে ডাটাবেস ফিল্ড গুলি ক্লাস ভ্যারিয়েবল হিসেবে থাকে। - স্কেলেবল এবং মডুলার অ্যাপ্লিকেশন তৈরি
Flask-SQLAlchemy সহজেই স্কেল করা যায়। যেমন: যখন বড় অ্যাপ্লিকেশন তৈরি করা হয়, তখন Flask-SQLAlchemy ডাটাবেস অপারেশনকে মডুলার এবং স্কেলেবল করে তোলে। - ডাটাবেস মাইগ্রেশন
Flask-SQLAlchemy এর সাথে Flask-Migrate যুক্ত করার মাধ্যমে ডাটাবেস মাইগ্রেশন অনেক সহজ হয়। যেমন যখন অ্যাপ্লিকেশন ডেভেলপমেন্ট চলাকালীন ডাটাবেস স্কিমার পরিবর্তন হয়, তখন মাইগ্রেশন টুল ব্যবহার করে এসব পরিবর্তন পরিচালনা করা যায়। - ডাটাবেস কুয়েরি অপ্টিমাইজেশন
SQLAlchemy এর ORM সিস্টেম কুয়েরি অপ্টিমাইজেশন, ক্যাশিং, এবং ডাটাবেস পুলিং ম্যানেজমেন্ট সিস্টেম এর সুবিধা দেয়, যা অ্যাপ্লিকেশনকে অধিক পারফর্ম্যান্স দেয়। - অ্যাপ্লিকেশন স্পিড বৃদ্ধি
কারণ Flask-SQLAlchemy সহজে ইনস্টল এবং কনফিগার হয়, ডাটাবেস সংযোগ এবং কুয়েরি অপারেশনগুলিকে দ্রুত পরিচালনা করা যায়।
Flask-SQLAlchemy এর উপকারিতা
- ডাটাবেসের সাথে সহজ ইন্টিগ্রেশন
Flask এবং SQLAlchemy এর মধ্যে সিম্পল ইন্টিগ্রেশন করার জন্য Flask-SQLAlchemy বিশেষভাবে ডিজাইন করা হয়েছে। এর ফলে ডাটাবেস সংযোগ এবং টেবিল মডেল তৈরির জন্য কোনো অতিরিক্ত কনফিগারেশন বা কোডিং করতে হয় না। - ORM স্টাইল মডেলিং
Flask-SQLAlchemy ব্যবহারকারীদের ডাটাবেস টেবিলকে Python ক্লাস হিসেবে মডেল করতে দেয়। এতে করে ডাটাবেসের সকল অপারেশন অনেক সহজ হয়ে যায়। - ব্যাচ অপারেশন সমর্থন
Flask-SQLAlchemy ডাটাবেসে একাধিক রেকর্ড ইনসার্ট, আপডেট বা ডিলিট করার জন্য ব্যাচ অপারেশন সমর্থন করে। এর মাধ্যমে কার্যক্ষমতা বাড়ানো সম্ভব।
Flask-SQLAlchemy ইনস্টলেশন
Flask-SQLAlchemy ইনস্টল করতে নিচের কমান্ডটি ব্যবহার করুন:
pip install Flask-SQLAlchemy
এটি Flask অ্যাপ্লিকেশন তৈরির জন্য খুবই গুরুত্বপূর্ণ টুল যা ডাটাবেস পরিচালনাকে সহজ এবং দক্ষ করে তোলে।
Flask অ্যাপ্লিকেশনে SQLAlchemy ব্যবহারের জন্য আমরা কিছু ধাপ অনুসরণ করবো। SQLAlchemy হলো একটি জনপ্রিয় Python ORM (Object Relational Mapper) যা ডাটাবেসের সঙ্গে ইন্টারঅ্যাকশন সহজ করে তোলে। এটি Flask অ্যাপ্লিকেশনে ব্যবহারের জন্য বেশ কার্যকর।
প্রথমে, প্রয়োজনীয় প্যাকেজ ইনস্টল করা
SQLAlchemy এবং Flask-SQLAlchemy ইন্সটল করতে প্রথমে আপনার প্রকল্পের ভার্চুয়াল এনভায়রনমেন্ট চালু করে নিচের কমান্ডটি রান করুন:
pip install Flask SQLAlchemy
Flask অ্যাপ্লিকেশন তৈরি
এখন একটি সাধারণ Flask অ্যাপ্লিকেশন তৈরি করে SQLAlchemy কনফিগার করি। উদাহরণস্বরূপ, আমরা একটি User মডেল তৈরি করবো, যাতে ব্যবহারকারীর নাম এবং ইমেইল থাকবে।
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
# Flask অ্যাপ্লিকেশন তৈরি
app = Flask(__name__)
# ডাটাবেস কনফিগারেশন
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///users.db' # SQLite ডাটাবেস ব্যবহার করছি
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False # পারফরমেন্স অপটিমাইজেশন
# SQLAlchemy ইনিশিয়ালাইজ করা
db = SQLAlchemy(app)
# ডাটাবেস মডেল তৈরি
class User(db.Model):
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(100), nullable=False)
email = db.Column(db.String(120), unique=True, nullable=False)
def __repr__(self):
return f'<User {self.name}>'
# হোম রাউট
@app.route('/')
def index():
return "Welcome to the Flask Application with SQLAlchemy!"
# ডাটাবেস তৈরি
@app.before_first_request
def create_tables():
db.create_all()
if __name__ == "__main__":
app.run(debug=True)
কোড ব্যাখ্যা:
- Flask এবং SQLAlchemy ইনিশিয়ালাইজ করা:
- প্রথমে
FlaskএবংSQLAlchemyইমপোর্ট করা হয়। SQLALCHEMY_DATABASE_URIএর মাধ্যমে SQLite ডাটাবেসের URI সেট করা হয়। এখানে আমরাsqlite:///users.dbব্যবহার করেছি, মানে আমাদেরusers.dbনামের একটি ডাটাবেস তৈরি হবে একই ফোল্ডারে।SQLALCHEMY_TRACK_MODIFICATIONSFalse করে দেওয়া হয়, যা Flask এর কিছু অতিরিক্ত ট্র্যাকিং নিষ্ক্রিয় করে দেয় এবং পারফরমেন্স উন্নত করে।
- প্রথমে
- User মডেল:
Userক্লাসে আমাদের ডাটাবেস টেবিল তৈরি হয়।id,nameএবংemailকলামগুলোকে মডেল হিসেবে ডিফাইন করা হয়েছে।__repr__ফাংশনটি একটি সহজভাবে ইউজার অবজেক্টের প্রতিনিধিত্ব প্রদান করে।
- ডাটাবেস টেবিল তৈরি:
create_tablesফাংশনটি@app.before_first_requestডেকোরেটরের মাধ্যমে রান করা হয়, যাতে প্রথম রিকোয়েস্টের আগেই টেবিল তৈরি হয়ে যায়।
ডাটাবেসে ডাটা ইনসার্ট করা
এখন আমরা Flask অ্যাপ্লিকেশনে ডাটাবেসে কিছু ইউজার ইনসার্ট করবো। উদাহরণস্বরূপ, নিচের কোডটি ব্যবহার করতে পারেন:
@app.route('/add_user')
def add_user():
new_user = User(name='John Doe', email='john@example.com')
db.session.add(new_user)
db.session.commit()
return f'User {new_user.name} added to the database!'
এখানে /add_user রাউটে একটি নতুন ইউজার John Doe নামের এবং john@example.com ইমেইল সহ ইনসার্ট করা হচ্ছে।
ডাটাবেস থেকে ডাটা পড়া
ডাটাবেস থেকে ইউজার ডাটা পড়তে আমরা একটি রাউট তৈরি করবো:
@app.route('/users')
def users():
all_users = User.query.all() # সব ইউজার পড়া
return '<br>'.join([f'{user.name} - {user.email}' for user in all_users])
এখানে User.query.all() ব্যবহার করে সব ইউজারের ডাটা পাওয়া যাবে।
Flask অ্যাপ্লিকেশন রান করা
অ্যাপ্লিকেশন চালানোর জন্য:
python app.py
এখন আপনি http://127.0.0.1:5000/ এ ব্রাউজারে গিয়ে অ্যাপ্লিকেশনটি দেখতে পারবেন। এবং http://127.0.0.1:5000/add_user এ গিয়ে নতুন ইউজার অ্যাড করতে পারবেন।
সারাংশ
Flask এবং SQLAlchemy ব্যবহার করে ডাটাবেস অ্যাপ্লিকেশন তৈরি করা খুবই সহজ। এর মাধ্যমে আপনি ডাটাবেস মডেল তৈরি করতে পারেন, ডাটা ইনসার্ট করতে পারেন, এবং ডাটাবেস থেকে ডাটা রিট্রিভ করতে পারেন। Flask-SQLAlchemy হল একটি শক্তিশালী টুল যা ORM এর মাধ্যমে ডাটাবেস ম্যানেজমেন্ট আরও সহজ করে তোলে।
Flask-SQLAlchemy ব্যবহার করে REST API তৈরি করার জন্য, প্রথমে কিছু প্রাথমিক প্রস্তুতি নিন। Flask একটি লাইটওয়েট ওয়েব ফ্রেমওয়ার্ক এবং SQLAlchemy একটি ORM (Object Relational Mapping) টুল, যা ডাটাবেসের সাথে কাজ করতে সহজ করে তোলে।
প্রয়োজনীয় প্যাকেজ ইনস্টল করা
প্রথমে Flask এবং Flask-SQLAlchemy ইনস্টল করতে হবে:
pip install flask flask_sqlalchemy
Flask অ্যাপ্লিকেশন তৈরি করা
এখন একটি সিম্পল Flask অ্যাপ্লিকেশন তৈরি করি, যা SQLAlchemy ব্যবহার করে ডাটাবেস সংযোগ করবে এবং REST API রাউট তৈরি করবে।
from flask import Flask, jsonify, request
from flask_sqlalchemy import SQLAlchemy
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///test.db' # SQLite ডাটাবেস ব্যবহার করছি
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
db = SQLAlchemy(app)
# ডাটাবেস মডেল তৈরি
class User(db.Model):
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(80), nullable=False)
email = db.Column(db.String(120), unique=True, nullable=False)
def __repr__(self):
return f"<User {self.name}>"
# ডাটাবেস তৈরি
@app.before_first_request
def create_tables():
db.create_all()
# রাউট: সকল ব্যবহারকারী দেখানো
@app.route('/users', methods=['GET'])
def get_users():
users = User.query.all()
return jsonify([{'id': user.id, 'name': user.name, 'email': user.email} for user in users])
# রাউট: নতুন ব্যবহারকারী তৈরি করা
@app.route('/users', methods=['POST'])
def add_user():
data = request.get_json()
new_user = User(name=data['name'], email=data['email'])
db.session.add(new_user)
db.session.commit()
return jsonify({'message': 'User created'}), 201
# রাউট: নির্দিষ্ট ব্যবহারকারী দেখানো
@app.route('/users/<int:id>', methods=['GET'])
def get_user(id):
user = User.query.get_or_404(id)
return jsonify({'id': user.id, 'name': user.name, 'email': user.email})
# রাউট: ব্যবহারকারী আপডেট করা
@app.route('/users/<int:id>', methods=['PUT'])
def update_user(id):
user = User.query.get_or_404(id)
data = request.get_json()
user.name = data['name']
user.email = data['email']
db.session.commit()
return jsonify({'message': 'User updated'})
# রাউট: ব্যবহারকারী মুছে ফেলা
@app.route('/users/<int:id>', methods=['DELETE'])
def delete_user(id):
user = User.query.get_or_404(id)
db.session.delete(user)
db.session.commit()
return jsonify({'message': 'User deleted'})
if __name__ == '__main__':
app.run(debug=True)
API এর ব্যাখ্যা
- GET /users: সকল ব্যবহারকারীর তথ্য দেখাবে।
- POST /users: নতুন ব্যবহারকারী তৈরি করবে।
- GET /users/: নির্দিষ্ট ব্যবহারকারীর তথ্য দেখাবে।
- PUT /users/: নির্দিষ্ট ব্যবহারকারীর তথ্য আপডেট করবে।
- DELETE /users/: নির্দিষ্ট ব্যবহারকারী মুছে ফেলবে।
অ্যাপ্লিকেশন চালানো
অ্যাপ্লিকেশনটি চালাতে:
python app.py
এখন আপনি localhost:5000-এ API অ্যাক্সেস করতে পারবেন।
সারাংশ
এভাবে, Flask-SQLAlchemy ব্যবহার করে আপনি সহজেই REST API তৈরি করতে পারেন। এই API বিভিন্ন HTTP মেথড যেমন GET, POST, PUT, DELETE এর মাধ্যমে ডাটাবেসের সাথে ইন্টারঅ্যাক্ট করে।
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