جنگو در CentOS 7 دیگر نقطهٔ شروع مناسبی برای یک سرویس تازه نیست. پشتیبانی CentOS Linux 7 در ۳۰ ژوئن ۲۰۲۴ پایان یافت. این صفحه، آموزش قدیمی نصب نسخههای ۱٫۶ و ۱٫۷ را به راهنمای انتقال پروژه به محیط پشتیبانیشده تبدیل میکند؛ هدف، نگهداری کد و داده با اصلاح وابستگیهای منقضی است.
چرا نصب مجدد جنگو در CentOS 7 کافی نیست؟
فعال کردن یک مخزن آرشیوی، پشتیبانی امنیتی سیستم را برنمیگرداند. اعلام رسمی CentOS پایان عمر این نسخه را مشخص کرده است. همچنین نصب پایتون جدید بهتنهایی کتابخانههای سیستم، وبسرور یا برنامهٔ قدیمی را اصلاح نمیکند.
اگر پروژه هنوز فعال است، نصب بستههای تازه را روی همان محیط بدون شناخت نسخهها آغاز نکنید. ابتدا مسیر سرویس، مفسر واقعی، نسخهٔ Django، موتور دیتابیس، افزونهها، فایلهای بارگذاریشده و کارهای زمانبندیشده را فهرست کنید. فقط فایلهای کد برای بازسازی کامل سرویس کافی نیستند.
نمونهٔ محیط تازه در خانوادهٔ RHEL 9
این دستورها برای میزبان تازه و پشتیبانیشدهای هستند که بستههای Python 3.12 را در مخزن مجاز ارائه میدهد؛ آنها را روی CentOS 7 اجرا نکنید. در RHEL، دسترسی مخزن نیز باید برقرار باشد:
dnf info python3.12 python3.12-pip
sudo dnf install python3.12 python3.12-pip
python3.12 --version
مستند رد هت بستههای نسخهدار را معرفی میکند. مفسر پیشفرض سیستم را عوض نکنید؛ فرمان صریح python3.12 انتخاب محیط پروژه را روشن نگه میدارد.
نصب آزمایشی Django در محیط مستقل
برای یک پروژهٔ تازه یا آزمون قابلیت محیط، با حساب عادی اجرا کنید:
mkdir django-migration-test
cd django-migration-test
python3.12 -m venv .venv
source .venv/bin/activate
python -m pip install "Django>=5.2,<5.3"
python -m django --version
python -m pip check
این نمونه، نسخهٔ قدیمی برنامهٔ شما را خودکار سازگار نمیکند. انتخاب ۵٫۲ بر مبنای یک شاخهٔ مشخص است؛ وضعیت پشتیبانی و سازگاری افزونههای واقعی را پیش از اجرای پروژه بررسی کنید. sudo pip و نصب سراسری بستههای پروژه، جداسازی را از بین میبرد.
ارتقای پروژهٔ قدیمی چگونه انجام میشود؟
برای پروژهٔ موجود، محیطی جدا با کپی مجاز کد و دادهٔ آزمون بسازید. مطابق راهنمای ارتقای Django، تغییرهای ناسازگار نسخههای میانی و هشدارهای منسوخشدن را بررسی کنید و ارتقاهای بزرگ را مرحلهای آزمایش کنید. نسخههای میانی منقضی فقط ممکن است برای آزمون انتقال در محیط محدود لازم شوند؛ مقصد نهایی نباید روی آنها متوقف بماند.
وابستگی رهاشده، کد Python 2، الگوی قدیمی URL یا تغییر API کتابخانهها با یک فرمان upgrade حل نمیشوند. خطا را به فایل و وابستگی مشخص نسبت دهید. آزمایشهای موجود را اجرا و برای مسیرهای حیاتی مانند ورود، ثبت فرم، پرداخت یا پردازش صف نتیجهٔ قابل مقایسه ثبت کنید.
دیتابیس و فایلها را جداگانه بررسی کنید
مهاجرت دیتابیس میتواند ساختار داده را تغییر دهد. ابتدا روی کپی آزمایشی اجرا شود و شمار رکوردها، روابط و خواندن فایلهای بارگذاریشده بررسی شوند. تغییر نام دامنه، مسیر رسانه یا مجوز فایل را با ارتقای فریمورک مخلوط نکنید؛ این تغییرها باید قابل ردیابی باشند.
از startproject برای جایگزین کردن پوشهٔ برنامهٔ موجود استفاده نکنید. کلیدهای محرمانه و رمز دیتابیس نیز نباید همراه کد در مخزن عمومی قرار گیرند.
شرط پایان انتقال
کد، داده، کارهای پسزمینه و مسیر سرویس باید در مقصد جدید آزمایش شوند. تنظیمات تولید را با چکلیست استقرار تطبیق دهید و راه بازگشت عملی داشته باشید. صرف مشاهدهٔ شمارهٔ Django یا صفحهٔ خوشآمدگویی، تأیید انتقال یک برنامهٔ واقعی نیست. برای آموزش ساخت پروژهٔ خالی، راهنمای مرتبط اوبونتو را ببینید.
مطالعهٔ مرتبط
بازبینی فنی: ۱۳ آبان ۱۴۰۵. تاریخ انتشار اولیه و نشانی قبلی حفظ شدهاند.