tgoop.com/ninja_learn_ir/743
Last Update:
خب خب خب Alembic 🧪
مروز میخوام درباره یه ابزار کاربردی تو دنیای پایتون حرف بزنم: Alembic اگه با دیتابیس کار میکنین و دنبال یه راه ساده برای مدیریت تغییراتش هستین، این پست برای شماست. بیاین با هم ببینیم Alembic چیه، چطوری کار میکنه و چرا باید ازش استفاده کنین.
🧠 Alembic چیه؟
Alembic یه ابزار متنباز (open-source) برای مدیریت مهاجرتهای دیتابیس (database migrations) تو پایتونه. این ابزار بیشتر با SQLAlchemy (یه ORM معروف) جفتوجوره و بهتون کمک میکنه تغییرات ساختاری دیتابیستون رو (مثل اضافه کردن جدول، تغییر ستون یا حذف فیلد) به صورت خودکار و منظم مدیریت کنین. به جای اینکه دستی کوئریهای SQL بنویسین و دیتابیس رو عوض کنین، Alembic این کار رو براتون ساده و خودکار میکنه.
فکر کنین یه جدول جدید به پروژهتون اضافه کردین یا یه ستون رو تغییر دادین؛ Alembic این تغییرات رو به یه فایل مهاجرت (migration script) تبدیل میکنه که میتونین هر وقت خواستین اعمالش کنین یا حتی برگردونین (rollback).
📚 Alembic چطوری کار میکنه؟
Alembic مثل یه مدیر پروژه برای دیتابیستونه. بیاین قدمبهقدم ببینیم چطوری کار میکنه:
1⃣ نصب و راهاندازی:
   اول با
pip install alembic
نصبش میکنین. بعد با دستور
alembic init نام اختیاری
یه پوشه برای تنظیماتش میسازین (معمولاً به اسم
alembic).2⃣ ساخت Migration:
وقتی مدلهای SQLAlchemyتون رو تغییر میدین (مثلاً یه ستون به کلاس اضافه میکنین)، با دستور زیر Alembic تغییرات رو تشخیص میده و یه اسکریپت Migration میسازه:
alembic revision --autogenerate -m "اضافه کردن ستون جدید"
این اسکریپت دو تا تابع داره:
**upgrade()** برای اعمال تغییرات و**downgrade()** برای برگردوندنش.3⃣ اعمال migration:
با دستور زیر تغییرات رو روی دیتابیس اعمال میکنین:
alembic upgrade head
اگه بخواین برگردین به نسخه قبلی:
alembic downgrade -1
4⃣ مدیریت نسخهها:
 Alembic یه جدول به اسم
alembic_version تو دیتابیستون میسازه و نسخه فعلی رو اونجا نگه میداره تا همیشه بدونین کجای کار هستین.🚀 چرا Alembic به وجود اومد؟
قبل از ابزارهایی مثل Alembic، اگه میخواستین دیتابیستون رو تغییر بدین، باید خودتون کوئریهای SQL مینوشتین و دستی اجرا میکردین. این چندتا مشکل داشت:
خطا:
یه اشتباه کوچیک تو کوئری میتونست دیتابیس رو به هم بریزه.
پیچیدگی:
تو پروژههای تیمی، هماهنگ کردن تغییرات دیتابیس بین اعضا سخت بود.
بازگشت پذیری:
اگه یه تغییر اشتباه میکردین، برگردوندنش یه کابوس بود.
Alembic اومد که:
اتوماسیون:
تغییرات رو خودکار تشخیص بده و اسکریپت
بسازه.
نسخه بندی:
تاریخچه تغییرات رو نگه داره و بتونه عقب و
جلو بره.
هماهنگی:
تو تیمها همه بتونن با یه سیستم مشخص کار کنن.
🛠 یه مثال ساده
فرض کنین یه مدل Sqlalchemy دارین
from sqlalchemy import Column, Integer, String
from sqlalchemy.ext.declarative import declarative_base
Base = declarative_base()
class User(Base):
__tablename__ = 'users'
id = Column(Integer, primary_key=True)
name = Column(String)
حالا میخواین یه ستون
email اضافه کنین:class User(Base):
__tablename__ = 'users'
id = Column(Integer, primary_key=True)
name = Column(String)
email = Column(String)
با دستور
alembic revision --autogenerate -m "add email"
Alembic یه فایل میسازه که تغییرات رو اعمال میکنه بعد با
alembic upgrade head
دیتابیستون آپدیت میشه. به همین راحتی 😎
جمعبندی ✍
Alembic یه ابزار قدرتمند و باحاله که مدیریت Migrations های دیتابیس رو تو پایتون به یه تجربه لذتبخش تبدیل میکنه. با Alembic دیگه لازم نیست نگران کوئریهای خام یا هماهنگی تیمی باشین؛ همهچیز خودکار و منظمه. اگه با SQLAlchemy کار میکنین، حتماً یه امتحانش کنین و ببینین چقدر زندگیتون رو راحت میکنه.
#️⃣ #db #alembic #sqlalchemy
➖➖➖➖➖➖➖➖➖
🥷 CHANNEL | GROUP
BY Ninja Learn | نینجا لرن
Share with your friend now:
tgoop.com/ninja_learn_ir/743
