Mohssen A Mohssen نشر 26 يونيو 2022 أرسل تقرير نشر 26 يونيو 2022 لدي حقل uuid وفي ملف التهجير migrationبالشكل التالي: import uuid from django.db import migrations, models class Migration(migrations.Migration): # ... operations = [ # ... migrations.AddField( model_name='product', name='uuid', field=models.UUIDField(default=uuid.uuid4, unique=True), ), ] لكن المشكلة تحدث عندما أقوم بتشغيل أمر التهجير: py manage.py migrate يظهر لي الخطأ التالي: django.db.utils.IntegrityError: could not create unique index "stores_product_uuid_key" DETAIL: Key (uuid)=(003c17e3-0301-4251-bf6e-87b6932d826b) is duplicated. ما سبب الخطأ؟ وكيف أقوم بحل هذه المشكلة؟ 1 اقتباس
1 Haroun Taha نشر 26 يونيو 2022 أرسل تقرير نشر 26 يونيو 2022 (معدل) اذا كنت تريد ان يكون uuid وان يكون هو PrimaryKey للجدول اي انه لا يمكن تكراره unique اكتب فقط primary_key=True يصبح unique عليك كتابة في class Product: import uuid from django.db import models class Product(models.Model): uuid = models.UUIDField(primary_key=True, default=uuid.uuid4) من الممكن ايضاً وليس أكيد ان يكون لديك تعارض في البيانات السابقة في قاعدة البيانات لأنك تقوم بتغيير على هيكلية الجدول فعليك حينها حذف قاعدة البيانات ومن ثم احذف كل شيء باستثناء ملف init__.py__ في مجلد migration في جميع apps Django سأرفق بصورة اي الملفات التي سوف تُحذف لحذف قاعدة البيانات وملف الmigrations في app في مشروع بعد ذلك قم بعمل : python manage.py makemigrations and python manage.py migrate تم التعديل في 26 يونيو 2022 بواسطة Haroun Taha اقتباس
0 محمد حجي2 نشر 26 يونيو 2022 أرسل تقرير نشر 26 يونيو 2022 جرب إستخدام أحد الحلول التاية : 1- الرجوع لعمليات migrations السابقة: 0005 هي رقم ملف migrations : 0005 هي فقط مثال على إسم أحد ملفات migrations python manage.py migrate <app_label> 0005 2- بعدها أحذف جميع الملفات التي بعد الملف الذي تريد الرجوع من عنده. اي مثلا 0005. 3- قم بعمل migrations: python manage.py makemigrations python manage.py migrate الحل الثاني: قم بدمج migrations بسخدام --merge اقتباس
السؤال
Mohssen A Mohssen
لدي حقل uuid وفي ملف التهجير migrationبالشكل التالي:
لكن المشكلة تحدث عندما أقوم بتشغيل أمر التهجير:
py manage.py migrate
يظهر لي الخطأ التالي:
ما سبب الخطأ؟ وكيف أقوم بحل هذه المشكلة؟
2 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.