Ninja Learn | نینجا لرن
1.26K subscribers
95 photos
36 videos
11 files
306 links
یادگیری برنامه نویسی به سبک نینجا 🥷
اینجا چیزایی یاد میگیری که فقط نینجاهای وب‌ بلدن 🤫

📄 Send me post: https://t.iss.one/NoronChat_bot?start=sec-fdggghgebe

👥 ɢʀᴏᴜᴘ: https://t.iss.one/+td1EcO_YfSphNTlk
Download Telegram
شاید باورتون نشه ولی ایشون سگاروعه


🥷 CHANNEL | GROUP
21💔1
خب خب خب آشنایی با Windows Subsystem for Linux (WSL) 🐧

امروز می‌خوایم درباره‌ی یه ابزار کاربردی تو ویندوز حرف بزنیم: Windows Subsystem for Linux یا به اختصار WSL. اگه تا حالا باهاش کار نکردین، حتماً این پست رو بخونین، چون قراره کلی چیزای جدید یاد بگیرین


🧠 WSL چیه؟

Windows Subsystem for Linux (WSL)‏ یه ویژگی تو ویندوز ۱۰ و ۱۱ هست که به شما اجازه می‌ده یه محیط لینوکس رو مستقیماً روی ویندوز اجرا کنین. یعنی می‌تونین دستورات لینوکس رو اجرا کنین، فایل‌های لینوکس رو مدیریت کنین و حتی برنامه‌های لینوکسی رو اجرا کنین، همه اینا بدون اینکه نیاز به ماشین مجازی یا دوال بوت داشته باشین. این ابزار برای توسعه‌دهنده‌ها، به خصوص کسایی که با پروژه‌های open source کار می‌کنن، خیلی مفیده چون منابع کمتری نسبت به یه ماشین مجازی کامل مصرف می‌کنه و کار باهاش خیلی راحت‌تره.

📚 نسخه‌های WSL

‏WSL دو نسخه داره که هر کدوم ویژگی‌های خاص خودشون رو دارن:

1️⃣WSL 1:
این نسخه سال ۲۰۱۶ معرفی شد و یه لایه‌ی سازگاری بود که از کرنل ویندوز برای اجرای برنامه‌های لینوکسی استفاده می‌کرد. ولی چون از کرنل لینوکس واقعی استفاده نمی‌کرد، بعضی وقت‌ها محدودیت‌هایی داشت.

2️⃣‏ WSL 2:

این نسخه سال ۲۰۱۹ اومد و یه کرنل لینوکس واقعی رو تو یه ماشین مجازی سبک اجرا می‌کنه. به همین خاطر، عملکرد و سازگاری بهتری داره، به خصوص تو عملیات سنگین مثل کار با فایل‌ها.

‏WSL 2‏ از تکنولوژی Hyper-V (یه سیستم مجازی‌سازی تو ویندوز) استفاده می‌کنه و به همین دلیل توصیه می‌شه ازش استفاده کنین، چون امکانات بیشتری داره و سریع‌تره.


🚀 نصب WSL
نصب WSL خیلی سادست و بسته به نسخه‌ی ویندوزتون فرق می‌کنه:

تو ویندوز ۱۱:
‏WSL به صورت پیش‌فرض نصب شده، ولی باید یه توزیع لینوکس (مثل Ubuntu یا Debian) رو از Microsoft Store دانلود و نصب کنین.

تو ویندوز ۱۰:
باید WSL رو دستی نصب کنین. برای این کار، PowerShell رو با دسترسی Administrator باز کنین و دستور زیر رو اجرا کنین:

wsl --install


این دستور WSL رو همراه با یه توزیع پیش‌فرض (معمولاً Ubuntu) نصب می‌کنه. اگه می‌خواین توزیع دیگه‌ای نصب کنین، از این دستور استفاده کنین:

wsl --install -d <Distribution Name>


مثلاً برای نصب Debian:

wsl --install -d Debian


‏WSL‏ از توزیع‌های مختلفی مثل Ubuntu، Debian، Kali و Fedora پشتیبانی می‌کنه که می‌تونین هر کدوم رو که دوست دارین انتخاب کنین.


🛠 استفاده از WSL

با WSL، می‌تونین یه محیط توسعه‌ی کامل لینوکس رو تو ویندوز داشته باشین. چند تا مثال از کارایی که می‌تونین بکنین:

دستورات لینوکس:
از دستوراتی مثل ls (البته تو لینوکس dir نیست، اینجا منظورم ls-مانندها بود)، grep، awk و غیره استفاده کنین.

ویرایشگرهای متنی:
می‌تونین از Vim، Emacs یا حتی VS Code با افزونه‌ی WSL کار کنین.
ابزارهای توسعه: Git، Docker، Node.js و خیلی چیزای دیگه رو نصب و استفاده کنین.

سرورهای وب:
می‌تونین سرورهایی مثل Apache یا Nginx رو تو WSL اجرا کنین و با مرورگر ویندوز بهشون دسترسی داشته باشین.


📂 دسترسی به فایل‌ها

یکی از ویژگی‌های جذاب WSL اینه که می‌تونین بین ویندوز و لینوکس فایل‌هاتون رو به اشتراک بذارین:

از WSL به ویندوز:
فایل‌های ویندوز تو مسیر /mnt/c (یا /mnt/d برای درایوهای دیگه) قابل دسترسی هستن.

از ویندوز به WSL:
فایل‌های لینوکس رو می‌تونین تو File Explorer ویندوز از مسیر \\wsl$\<Distribution Name> ببینین.

برای عملکرد بهتر، پیشنهاد می‌شه فایل‌های پروژه‌تون رو تو فایل‌سیستم لینوکس (نه درایو ویندوز) نگه دارین، به خصوص اگه از WSL 2 استفاده می‌کنین.


🔍 نکات و ترفندها
عملکرد بهتر با WSL 2:
WSL 2 به خاطر استفاده از کرنل واقعی لینوکس و Hyper-V، تو عملیات سنگین مثل کار با فایل‌ها خیلی بهتر عمل می‌کنه.

مدیریت توزیع‌ها:
می‌تونین چند تا توزیع لینوکس نصب کنین و با دستور
 wsl -d <Distribution Name>

بینشون جابه‌جا بشین.

به‌روزرسانی WSL:
برای آپدیت کردن WSL، از این دستور استفاده کنین:
wsl --update

دسترسی به GPU:
WSL 2 از GPU پشتیبانی می‌کنه که برای کارهای ماشین لرنینگ یا گرافیکی عالیه.

محدودیت‌ها:
‏WSL از systemd پشتیبانی نمی‌کنه، که ممکنه برای بعضی سرویس‌ها مشکل‌ساز باشه، ولی راه‌حل‌های غیررسمی برای این موضوع وجود داره.


✍️ جمع‌بندی
Windows Subsystem for Linux (WSL) یه ابزار فوق‌العاده‌ست که به شما اجازه می‌ده ویندوز و لینوکس رو با هم داشته باشین. چه توسعه‌دهنده باشین، چه فقط بخواین لینوکس رو امتحان کنین، WSL یه راه سریع و ساده برای این کاره.

#️⃣ #porgramming #wsl #linux #windows


🥷 CHANNEL | GROUP
👍102❤‍🔥1👌1
خب خب خب
اولین مقاله من که توی سایت medium پابلیش شد
(نسخه فارسیشم احتمالا یا تو خود مدیوم یا توی ویرگول میزارم)

خیلی خلاصه بخوام بگم
یه بست پرکتیسه برای ساختار فایل بندی پروژتون


امید وارم مفید واقع بشه 😊

(اگه مشکلی دیدید یا پیشنهادی داشتید میتونید توی کامنتای خود مقاله بهم بگید)

🔗 لینک مقاله
و از این لینک هم میتونید مطالعه کنید

#️⃣ #refrence


🥷 CHANNEL | GROUP
🤩14🔥74👏3❤‍🔥1👍1👌1
Ninja Learn | نینجا لرن pinned «خب خب خب اولین مقاله من که توی سایت medium پابلیش شد (نسخه فارسیشم احتمالا یا تو خود مدیوم یا توی ویرگول میزارم) خیلی خلاصه بخوام بگم یه بست پرکتیسه برای ساختار فایل بندی پروژتون امید وارم مفید واقع بشه 😊 (اگه مشکلی دیدید یا پیشنهادی داشتید میتونید توی…»
This media is not supported in your browser
VIEW IN TELEGRAM
😂😂


🥷 CHANNEL | GROUP
💔12🤣4👍1👎1
خب سلام دوستان 👋

هرکسی که میخواد توی پروژه های اوپن سورس Diramid (تیم توسعه نرم افزار های اوپن سورس) شرکت کنه

میتونه عضو این گروه بشه

https://t.iss.one/+WpLLMkght6w1ZDU0

برای هر پروژه یک تاپیک زده شده.
و توجه داشته باشید این گروه جای چت و گپ زدن نیست.
قبل از عضو شدن اگر مطمئن هستید که میخواید کمک کنید عضو بشید.

با تشکر از همه ی شما عزیزان ❤️


🥷 CHANNEL | GROUP
👍7
خب خب خب ORM چیه ؟ 🛸

امروز می‌خوام درباره‌ی یه موضوع مهم و کاربردی تو دنیای برنامه‌نویسی حرف بزنم: ORM یا همون Object-Relational Mapping.

🧠 ORM یعنی چی؟

ORM (Object-Relational Mapping) یه تکنیک تو برنامه‌نویسیه که داده‌های دیتابیس رو به شکل اشیاء (objects) تو زبون‌های شی‌گرا مثل پایتون، جاوا یا سی‌شارپ مدیریت می‌کنه. به بیان ساده، ORM یه پل ارتباطی بین دنیای شی‌گرایی (کلاس‌ها و اشیاء) و دنیای دیتابیس‌های رابطه‌ای (جداول و ستون‌ها) می‌سازه. با ORM دیگه لازم نیست مستقیم با کوئری‌های SQL کار کنی؛ در عوض، با همون زبون برنامه‌نویسی‌ات دیتابیس رو کنترل می‌کنی.

مثلاً به جای اینکه بنویسی:
SELECT * FROM users

می‌تونی تو پایتون با Django ORM اینجوری بنویسی:
users = User.objects.all()

و همون نتیجه رو بگیری

📚 ORM چطوری کار می‌کنه؟
فرض کن تو دیتابیست یه جدول به اسم users داری که ستون‌هاش اینان:
id، name و email

تو برنامه‌ات یه کلاس به اسم User می‌سازی که پراپرتی‌هایی مثل id، name و email داره. ORM این کلاس رو به جدول users توی دیتابیس مپ (map) می‌کنه. یعنی هر شیء از کلاس User نمایانگر یه رکورد تو جدول users می‌شه.

چند تا سناریو رو با هم ببینیم:

1⃣ ذخیره کردن داده:
یه شیء از کلاس User می‌سازی، مقادیرش رو پر می‌کنی و با یه متد مثل save() ذخیره‌اش می‌کنی. ORM این کار رو به یه دستور SQL (مثل INSERT) تبدیل می‌کنه و اجرا می‌کنه.

user = User(name='علی', email='[email protected]')
user.save()


2⃣ خوندن داده:
میتونی به جای کوئری SQL، از متدهایی مثل all() یا filter() استفاده می‌کنی. ORM پشت صحنه کوئری مناسب رو می‌سازه و داده‌ها رو به شکل اشیاء برمی‌گردونه.


   # همه کاربرها
users = User.objects.all()

# فیلتر کردن
ali_users =
User.objects.filter(name='علی')


به همین سادگی ORM تمام پیچیدگی‌های کار با دیتابیس رو از دید تو مخفی می‌کنه و یه رابط کاربری راحت بهت می‌ده.

البته هر orm با orm های دیگه فرق داره هرچی یه orm بیشتر abstraction انجام داده باشه استفاده ازش راحت تر میشه
ولی توی مقیاس بالاتر همین سادگی باعث پیچیدگی میشه.
🚀 ORM برای چی به وجود اومد؟

قبل از اینکه ORMها باشن، برنامه‌نویس‌ها مستقیم با SQL کار می‌کردن. (هرچند همین الانشم توی زبان های هایی که orm مناسبی براش ساخته نشده برنامه نویسان بصورت خام کد sql میزنن مثل برنامه نویسان golang)

این چند تا مشکل داشت و داره:

کدهای طولانی:
برای هر عملیات ساده، باید یه کوئری SQL می‌نوشتی که گاهی خیلی پیچیده می‌شد.

خطای زیاد:
یه اشتباه کوچیک تو کوئری (مثل یه typo) می‌تونست ساعت‌ها وقتت رو تلف کنه.

سختی نگهداری:
اگه ساختار دیتابیست عوض می‌شد (مثلاً یه ستون اضافه یا کم می‌شد)، باید همه کوئری‌ها رو دستی تغییر می‌دادی.

تفاوت پارادایم:
‏ SQL یه زبون declarative (اعلانی) هست، ولی زبون‌هایی مثل پایتون imperative (دستوری) هستن. این یعنی برنامه‌نویس باید مدام بین دو مدل فکری جابه‌جا می‌شد.

ORM اومد که این مشکلات رو حل کنه:

سادگی:
کار با دیتابیس مثل کار با اشیاء تو زبون خودت می‌شه.

امنیت:
‏ORMها معمولاً جلوی حملاتی مثل SQL Injection رو می‌گیرن.

انعطاف‌پذیری:
می‌تونی دیتابیس رو عوض کنی (مثلاً از MySQL بری به PostgreSQL) بدون اینکه کل کدت رو تغییر بدی.

سرعت توسعه:
چون کوئری‌نویسی کمتر می‌شه، وقت بیشتری برای منطق اصلی برنامه‌ات داری.

جمع‌بندی
ORM یه ابزار باحال و قدرتمنده که کار با دیتابیس رو برای برنامه‌نویس‌ها راحت‌تر، سریع‌تر و امن‌تر می‌کنه. با ORM دیگه لازم نیست با SQL خام کلنجار بری و می‌تونی با همون زبون برنامه‌نویسی‌ات همه‌چیز رو مدیریت کنی.

#️⃣ #database #sql #orm


🥷 CHANNEL | GROUP
14👍4
Fantastic
🤩19🔥2👍1
مقاله بعدی درمورد داکرایز کردن پروژه توی fastapi هست
(اگه ایده ای هم برای مقالات دارید خوشحال میشم بشنوم)
🔥17👍4
فردا کتاب boost your djangoDx رو میزارم :)
پیشاپیش عیدتون مبارک ❤️
🔥27
Boost Your Django DX (Adam Johnson) (Z-Library)-2.pdf
21.7 MB
اینم کتاب Boost your DjangoDX
امید وارم لذت ببرید :) ❤️

#️⃣ #book


🥷 CHANNEL | GROUP
18🔥3
کوکی‌کاتر خودمو زدم

میتونید با fastapi-cookiecutters یه پروژه FastAPI تمیز و آماده بسازین. و دیتابیس، Docker، هر چی بخوای اضافه می‌کنه

از PyPI میتونید دانلود کنید:

pip install fastapi-cookiecutters


تست کنین و بگین چطوره🚀

#️⃣ #package


🥷 CHANNEL | GROUP
👍10👎1🔥1
فرآیند بوت شدن سیستم های لینوکسی 🚀
خب توی این پست فرآیند بوت شدن سیستم هایی که از لینوکس استفاده میکنن رو بررسی میکنیم.

1️⃣ فاز اولیه: اجرا شدن فریمور (BIOS/UEFI)
وقتی دکمه‌ی پاور رو می‌زنی، اولین چیزی که اجرا می‌شه، BIOS (تو سیستم‌های قدیمی‌تر) یا UEFI (تو سیستم‌های جدید) هست. این قسمت سخت‌افزار رو بررسی می‌کنه و مطمئن می‌شه که قطعات اصلی (مثل رم، پردازنده و دیسک‌ها) درست کار می‌کنن.

تست اولیه: این مرحله به اسم POST (Power-On Self Test) شناخته می‌شه و اگه مشکلی باشه، مثلاً رم خراب باشه، معمولاً با یه سری بوق یا پیام خطا هشدار می‌ده.

پیدا کردن بوت لودر: بعد از تست سخت‌افزار، BIOS/UEFI دنبال دیسک قابل بوت می‌گرده (مثل SSD یا USB) و بوت‌لودر رو اجرا می‌کنه.

2️⃣ بوت‌لودر (GRUB یا systemd-boot)
بعد از اینکه دیسک بوت پیدا شد، بوت‌لودر (معمولاً GRUB) اجرا می‌شه. بوت‌لودر یه برنامه‌ی کوچیکه که وظیفه‌ی لود کردن کرنل لینوکس رو داره.

انتخاب سیستم‌عامل:
اگه چند تا سیستم‌عامل نصب کرده باشی (مثلاً لینوکس و ویندوز)، اینجا می‌تونی انتخاب کنی که کدوم یکی بوت بشه.

بارگذاری کرنل:
بعد از انتخاب سیستم‌عامل (یا بعد از چند ثانیه اگه گزینه‌ای انتخاب نشه)، بوت‌لودر کرنل لینوکس (فایل vmlinuz) رو بارگذاری می‌کنه.

3️⃣ بارگذاری کرنل و initramfs
اینجا کرنل لینوکس اجرا می‌شه و شروع به کنترل سخت‌افزار می‌کنه. اما چون هنوز فایل‌سیستم اصلی (Root) بارگذاری نشده، یه چیز به اسم initramfs وارد ماجرا می‌شه.

‏initramfs چیه؟
یه فایل موقتی که شامل درایورها و ابزارهای اولیه برای شناسایی و اتصال فایل‌سیستم اصلیه. به کرنل کمک می‌کنه که بتونه پارتیشن‌های دیسک رو بشناسه و مونت کنه.

4️⃣ مونت شدن روت و اجرای systemd
بعد از اینکه کرنل تونست به فایل‌سیستم اصلی دسترسی پیدا کنه، حالا سیستم آماده‌ی راه‌اندازی سرویس‌ها و بقیه‌ی چیزهاست.

ورود systemd:
تو اکثر توزیع‌های مدرن لینوکس، systemd اجرا می‌شه و وظیفه‌ی مدیریت سرویس‌ها و فرآیندهای سیستم رو به عهده داره.

راه‌اندازی سطح سیستم:
اینجا کلی سرویس اجرا می‌شن، مثل:
مدیریت شبکه (NetworkManager یا systemd-networkd)

مدیریت لاگ‌ها (journald)

راه‌اندازی محیط گرافیکی (GDM، SDDM یا LightDM)


5️⃣ نمایش صفحه‌ی لاگین
در نهایت، بعد از اینکه همه سرویس‌های لازم اجرا شدن، یه ترمینال لاگین (TTY) یا محیط گرافیکی دسکتاپ (مثل KDE Plasma یا GNOME) نمایش داده می‌شه و می‌تونی با یوزرنیم و پسورد وارد سیستم بشی.

جمع‌بندی:
1.‏ BIOS/UEFI اجرا می‌شه و سخت‌افزار رو بررسی می‌کنه.
2. بوت‌لودر (GRUB) کرنل لینوکس رو لود می‌کنه.
3. کرنل و initramfs فایل‌سیستم رو راه‌اندازی می‌کنن.
4.‏ systemd مدیریت سرویس‌ها رو انجام می‌ده.
5. صفحه‌ی لاگین نمایش داده می‌شه و سیستم آماده‌ی استفاده‌ست!

#️⃣ #linux #boot #kernel


🐧 CHANNEL | GROUP
👍10🔥1
Forwarded from Revisto/Tech (Revisto)
سلام سلام. من پروژه‌ای رو شروع کردم برای ترجمه‌ی آزاد مستندات و داکیومنت‌های رسمی پایتون به فارسی.
اگر این مسیر براتون جذابه و دوست دارید مشارکت کنید خیلی خوشحال میشم و ما نیاز داریم به این کامیونیتی برای ادامه و گسترش مستندات پایتون به فارسی.


اسم ما و مخزن پایتون به فارسی روی بخش ترجمه‌ی devguide پایتون هم هست و من کارهای لازم رو برای به رسمیت شناخته شدن فعالیتمون کردم و الان نیاز به کمک شما داره.

طبق مستندات وقتی صفحه‌‌های tutorial‍, bugs, library/functions صددرصد ترجمه بشن میتونیم درخواست بدیم تا ترجمه‌مون بخشی از docs.python.org و عمومی بشه.
کاری که من کردم اینه که یک دور این صفحات رو با Google Translate ترجمه کردم و الان فقط نیاز دارن که هر بخش بازبینی (review) بشه.

ترجمه هم در سایت Transifex اتفاق میفته که توی ویدیو خیلی دقیق‌تر گفتم چجوری میشه شروعش کرد.


لینک ویدیو در یوتیوب
لینک مخزن گیتهاب ترجمه
لینک دیسکورد ترجمه فارسی

@RevistoTech
🔥8👍2
Revisto/Tech
Photo
ریا نباشه منم دارم داکیومنت FastAPI رو ترجمه میکنم 😁✌️ ( اگه وقت کنم توی این پروژه هم مشارکت می‌کنم)
18🔥5
خب خب خب 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
🔥11👍31
This media is not supported in your browser
VIEW IN TELEGRAM
سال نو مبارک:) ❤️

امید وارم سال ۱۴۰۴ پر از شادی و خبرای خوب برای همگیمون باشه
❤‍🔥201🔥1