اذهب إلى المحتوى

السؤال

نشر

قمت بعمل بعض الأخطاء في قاعدة البيانات والآن أريد إزالة كافة الجداول من قاعدة بيانات

حاولت إستخدام الأوامر التالية:

python3 manage.py sqlflush blog

لكن يبدو أن هذا الأمر لم يعد يعمل، حيث أن كل ما يقوم به هو طباعة جملة SQL لحذف الجداول ولكن لا يتم حذفهم بالفعل من قاعدة البيانات، هل هناك طريقة للقيام بهذا الأمر باستخدام  manager.py أو بإستخدام الأمر django-admin؟

Recommended Posts

  • 1
نشر

 

python3 manage.py sqlflush blog

الأمر الذي استعملته هنا يقوم فقط بطباعة مجموعة أوامر بصيغة SQL، هذه الأوامر تعمل على حذف البيانات فقط ولا تحذف الجداول الخاصة بالتطبيق blog.

إذا أردت حذف بيانات التطبيق blog فقط قُم بدمْج الأمر السابق مع الأمر dbshell:

pyhon3 manage.py sqlflush blog | python3 manage.py dbshell

الأمر dbshell وظيفته فتح ال shell الخاص بقاعدة البيانات.

أما إذا أردت حذف كل بيانات التطبيقات استعمل الأمر 

python3 manage.py flush
# أو
django-admin flush

أما إذا أردت حذف الجداول مع البيانات قم بتنفيذ الشفرة التالية في django shell

python3 manage.py shell #نقوم بفتح django shell

#نقوم بتنفيذ أوامر الحذف داخل قاعدة البيانات
>>> from django.db import connection
>>> cursor = connection.cursor()
>>> cursor.execute('show tables;')
>>> parts = ('DROP TABLE IF EXISTS %s;' % table for (table,) in cursor.fetchall())
>>> sql = 'SET FOREIGN_KEY_CHECKS = 0;\n' + '\n'.join(parts) + 'SET FOREIGN_KEY_CHECKS = 1;\n'
>>> connection.cursor().execute(sql)

 

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...