ارور Specified key was too long در جنگو
![ارور Specified key was too long در جنگو ارور Specified key was too long در جنگو](https://parswebserver.com/wp-content/uploads/2023/12/Specified-key-was-too-long-error-50x50.jpg)
خطای Specified key was too long از جمله خطاهایی است که در پروژههای پایتون و یا جنگو با دیتابیس mysql ممکن است با آن مواجه شوید.
ممکن است با این خطا در طی migrate پروژه، در ترمینال سی پنل و یا خط فرمان putty، روبرو شوید.
قبل از بررسی این ارور در جنگو، باید گفت این ارور Specified key was too long از جمله خطاهای شایع در زمان migrate در پروژه های لاراولی هم می باشد که در آموزش جداگانهای در مورد رفع آن توضیح داده شده است. (رفع خطای Specified key was too long در لاراول)
در این آموزش دلیل و روش رفع این ارور را در پروژههای جنگو مرور میکنیم.
در زمان مایگریت کردن پروژه جنگو بر روی هاستهایی که از دیتابیس mysql استفاده میکنند و engine database بر روی myisam قرار دارد، ممکن است با خطای زیر مواجه شوید :
django.db.utils.OperationalError: (1071, ‘Specified key was too long; max key length is 1000 bytes’)
این خطا بر روی هاستهای با دیتابیس mariadb وجود ندارد.
تشخیص نوع دیتابیس، ماریادی بی یا mysql
برای اینکه بدانید دیتابیس شما از چه نوعی هست و آیا ماریادیبی هست و یا mysql، وارد سیپنل شوید (آموزش لاگین به سیپنل) و در صفحه اصلی سیپنل روی گزینهی phpmyadmin کلیک کنید.
در صفحه ای که برای شما باز میشود میتوانید نوع دیتابیس را مشاهده کنید.
دلیل خطای Specified key was too long
بعد از اینکه وارد ترمینال سیپنل شدید و دستور سورس پروژه را وارد کردید، میتوانید دستورات
python manage.py makemigrations
python manage.py migrate
را بزنید تا تغییراتی که در مدلهای پروژه داشتید بر روی دیتابیس اعمال و اضافه شود.
ممکن در برخی موارد با خطا در زمان مایگریت مواجه شوید.
در اروری که در ترمینال نمایش داده میشود، دقیقا مایگریشنی که ارور دارد مشخص میشود و شماره مایگریشن، نام دقیق مایگریشنی و اینکه مربوط به کدام اپ پروژه است، در متن خطا به آن اشاره میشود.
هر اپ موجود در پروژه، دارای یک فولدر migrations میباشد که تغییراتی که باید در دیتابیس اعمال شود، در آن ذخیره میشود.
با توجه به مایگریشنی که خطا دارد، باید مدل مربوط به همان اپ اصلاح شود.
در صورتی که از کاراکترهای فارسی در اسلاگ و url استفاده شود باید max-lenght آن رکورد، حداکثر عدد 250 تنظیم شود.
در mysql 8.0.3 وقتی یک ستون به عنوان ایندکس انتخاب میشود، یعنی مقدار db_index=True به عنوان ویژگی آن تعریف می شود، حداکثر تعداد کاراکتر یا max-lenghth آن ستون حداکثر 250 کاراکتر میباشد و اگر عدد بیشتری از این مقدار تنظیم شود، پروژه با این ارور مواجه میشود.
همینطور در مورد SlugField هم حداکثر مقدار کاراکتر مجاز 250 کاراکتر میباشد.
حذف مایگریشن های قبلی و ایجاد مایگریشن های جدید
بعد از اینکه تغییرات مورد نظر بر روی مدلها اعمال شد و مواردی که max-lenght آنها به 250 تغییر پیدا کرد، باید مایگریشنهای قبلی حذف شود تا مایگریشن های جدید ایجاد شود.
در ترمینال و در مسیر پروژه با زدن جداگانه هر کدام از دستورات زیر، مایگریشنها و کش مربوط به مایگریشنها (محتویات فولدر _pycache_) حذف میشوند .
find . -path "*/migrations/*.py" -not -name "__init__.py" -delete
find . -path "*_pycache_*.pyc" -delete
در هر فولدر migrations یک فایل به نام __init__.py باید وجود داشته باشد.
اگر احیانا به اشتباه این فایل پاک شد باید فایلی به همین نام و بدون هیچ محتوایی، ایجاد شود.
این فایل بدون هیچ محتوایی می باشد و برای تهیه مایگریشن در فولدر migrations ضروری میباشد.
توجه داشته باشید که بعد از تغییرات و ایجاد مایگریشن جدید و قبل از اجرای دستور
python manage.py migrate
باید جداول دیتابیس مربوط به پروژه حذف شوند، یعنی همه آنها انتخاب و drop شوند تا از نو ساخته شوند.
در صورتی که این کار انجام نشود در زمان مایگریت، پیامی نمایش داده میشود که یک جدول در دیتابیس با نام مشابه وجود دارد و عملیات migrate ناقص میماند.
در صورتی که خطای دیگری وجود نداشته باشد عملیات migrate انجام میشود و تغییرات در دیتابیس اعمال میشود.
بعد از مایگریت موفق، پروژه راهاندازی میشود و میتوانیم با تایپ آدرس نام دامنه و یا سابدامنه در مرورگر ، وب سایت جنگویی خود را مشاهده کنیم.
در صورتی که با تغییرات بالا، خطای پروژه شما رفع نشد و پروژه راهاندازی نشد میتوانید به پشتیبانی پارس وب سرور تیکت بزنید تا همکاران پروژه شما را در اسرع وقت بررسی و پیگیری کنند (درخواست پشتیبانی)
![محبوبترین فریمورکها و تکنولوژیهای نودجیاس nodejs در سال 2024 محبوبترین فریمورکها و تکنولوژیهای نودجیاس nodejs در سال 2024](https://parswebserver.com/wp-content/uploads/2024/06/nodejs-frameworks-415x235.jpg)
محبوبترین فریمورکها و تکنولوژیهای نودجیاس nodejs در سال 2024
![پروژههای قابل اجرا بر روی هاستهای پایتون با Cpanel پروژههای قابل اجرا بر روی هاستهای پایتون با Cpanel](https://parswebserver.com/wp-content/uploads/2024/06/python_pws-415x235.jpg)
پروژههای قابل اجرا بر روی هاستهای پایتون با Cpanel
![آموزش فعالسازی SSL در هاست آموزش فعالسازی SSL در هاست](https://parswebserver.com/wp-content/uploads/2020/02/ip4-2.jpg)
آموزش فعالسازی SSL در هاست
![ساخت دیتابیس مونگو دی بی و اتصال به studio 3t ساخت دیتابیس مونگو دی بی و اتصال به studio 3t](https://parswebserver.com/wp-content/uploads/2020/09/MongoDB-3.png)
ساخت دیتابیس مونگو دی بی و اتصال به studio 3t
![فعال کردن extension های php در cPanel فعال کردن extension های php در cPanel](https://parswebserver.com/wp-content/uploads/2023/01/php-415x235.jpg)
فعال کردن extension های php در cPanel
![جلوگیری از ارتباط لینک های خارجی پیشخوان وردپرس جلوگیری از ارتباط لینک های خارجی پیشخوان وردپرس](https://parswebserver.com/wp-content/uploads/2022/10/wp-02-415x235.jpg)
جلوگیری از ارتباط لینک های خارجی پیشخوان وردپرس
![مشاهده لاگ های سایت در Raw Access سی پنل مشاهده لاگ های سایت در Raw Access سی پنل](https://parswebserver.com/wp-content/uploads/2022/09/raw-06-415x235.jpg)
مشاهده لاگ های سایت در Raw Access سی پنل
![معرفی سرویس Webalizer در سی پنل معرفی سرویس Webalizer در سی پنل](https://parswebserver.com/wp-content/uploads/2022/08/Webalizer-02-376x235.jpg)
معرفی سرویس Webalizer در سی پنل
![معرفی سرویس آمار سی پنل Awstats معرفی سرویس آمار سی پنل Awstats](https://parswebserver.com/wp-content/uploads/2022/08/Awstats-01-415x235.jpg)
معرفی سرویس آمار سی پنل Awstats
![معرفی سرویس Virus Scanner در سی پنل معرفی سرویس Virus Scanner در سی پنل](https://parswebserver.com/wp-content/uploads/2022/08/scan-02-293x235.jpg)
معرفی سرویس Virus Scanner در سی پنل
![معرفی قابلیت Track DNS در سرویسهای سی پنل معرفی قابلیت Track DNS در سرویسهای سی پنل](https://parswebserver.com/wp-content/uploads/2022/08/dns-05-415x235.jpg)
معرفی قابلیت Track DNS در سرویسهای سی پنل
![معرفی بخش BoxTrapper در سی پنل معرفی بخش BoxTrapper در سی پنل](https://parswebserver.com/wp-content/uploads/2022/08/bt-01-415x235.jpg)
معرفی بخش BoxTrapper در سی پنل
![قابلیت Greylisting در سی پنل قابلیت Greylisting در سی پنل](https://parswebserver.com/wp-content/uploads/2022/08/Greylisting-01-415x235.jpg)
قابلیت Greylisting در سی پنل
![آموزش مسدود سازی IP با استفاده از IP Blocker سی پنل آموزش مسدود سازی IP با استفاده از IP Blocker سی پنل](https://parswebserver.com/wp-content/uploads/2022/08/ip-1-415x235.jpg)
آموزش مسدود سازی IP با استفاده از IP Blocker سی پنل
![ایجاد رکوردهای DNS در ZoneEditor سی پنل ایجاد رکوردهای DNS در ZoneEditor سی پنل](https://parswebserver.com/wp-content/uploads/2022/07/dns-415x235.jpg)
ایجاد رکوردهای DNS در ZoneEditor سی پنل
![بررسی Bandwidth در سرویس سی پنل بررسی Bandwidth در سرویس سی پنل](https://parswebserver.com/wp-content/uploads/2022/07/bw-415x235.jpg)
بررسی Bandwidth در سرویس سی پنل
![کد EPP چیست کد EPP چیست](https://parswebserver.com/wp-content/uploads/2022/06/EPP-415x235.jpg)
کد EPP چیست
![جلوگیری از دریافت ایمیل های خاص در سی پنل جلوگیری از دریافت ایمیل های خاص در سی پنل](https://parswebserver.com/wp-content/uploads/2022/06/email-415x235.jpg)
جلوگیری از دریافت ایمیل های خاص در سی پنل
![آموزش ایجاد ساب دامنه در هاست سی پنل آموزش ایجاد ساب دامنه در هاست سی پنل](https://parswebserver.com/wp-content/uploads/2022/06/sub-01-415x235.jpg)
آموزش ایجاد ساب دامنه در هاست سی پنل
![آموزش مدیریت فضای ایمیل سی پنل آموزش مدیریت فضای ایمیل سی پنل](https://parswebserver.com/wp-content/uploads/2022/06/email-logo-415x235.jpg)
آموزش مدیریت فضای ایمیل سی پنل
![آموزش رفع ارور 502 Bad gateway آموزش رفع ارور 502 Bad gateway](https://parswebserver.com/wp-content/uploads/2021/11/502-415x235.jpg)
آموزش رفع ارور 502 Bad gateway
![محبوبترین فریمورکها و تکنولوژیهای نودجیاس nodejs در سال 2024 محبوبترین فریمورکها و تکنولوژیهای نودجیاس nodejs در سال 2024](https://parswebserver.com/wp-content/uploads/2024/06/nodejs-frameworks-415x235.jpg)
محبوبترین فریمورکها و تکنولوژیهای نودجیاس nodejs در سال 2024
![پروژههای قابل اجرا بر روی هاستهای پایتون با Cpanel پروژههای قابل اجرا بر روی هاستهای پایتون با Cpanel](https://parswebserver.com/wp-content/uploads/2024/06/python_pws-415x235.jpg)
پروژههای قابل اجرا بر روی هاستهای پایتون با Cpanel
![هاست نودجیاس برای چه پروژههایی مناسب است؟ هاست نودجیاس برای چه پروژههایی مناسب است؟](https://parswebserver.com/wp-content/uploads/2024/06/pws_nodejs_projects-415x235.jpg)
هاست نودجیاس برای چه پروژههایی مناسب است؟
![راهنمای حذف لینکهای stats.wp.com در وردپرس راهنمای حذف لینکهای stats.wp.com در وردپرس](https://parswebserver.com/wp-content/uploads/2024/02/website-loading-415x235.png)
راهنمای حذف لینکهای stats.wp.com در وردپرس
![چرا وب سایت وردپرسی کند است؟ چرا وب سایت وردپرسی کند است؟](https://parswebserver.com/wp-content/uploads/2024/04/migrating-wordpress-415x235.jpg)
چرا وب سایت وردپرسی کند است؟
![تفاوت هاست وردپرس با هاست معمولی تفاوت هاست وردپرس با هاست معمولی](https://parswebserver.com/wp-content/uploads/2024/04/Use-Case@2x-2-1-415x235.png)
تفاوت هاست وردپرس با هاست معمولی
![نقش امنیت در سایتهای وردپرسی نقش امنیت در سایتهای وردپرسی](https://parswebserver.com/wp-content/uploads/2024/04/امنیت-وردپرس-415x235.jpg)
نقش امنیت در سایتهای وردپرسی
![تبریک سال نو با هدیه نوروزی پارس وب سرور تبریک سال نو با هدیه نوروزی پارس وب سرور](https://parswebserver.com/wp-content/uploads/2024/03/spring1403-415x235.jpg)
تبریک سال نو با هدیه نوروزی پارس وب سرور
![تفاوت و برتری سرورهای G10 در مقایسه با سرورهای G9 تفاوت و برتری سرورهای G10 در مقایسه با سرورهای G9](https://parswebserver.com/wp-content/uploads/2024/03/server-g10-415x235.png)
تفاوت و برتری سرورهای G10 در مقایسه با سرورهای G9
![7 راهکار برای جلوگیری از اسپمشدن ایمیلها 7 راهکار برای جلوگیری از اسپمشدن ایمیلها](https://parswebserver.com/wp-content/uploads/2024/02/email-spam-pws-415x235.png)