python - كيفية إعادة تعيين ديسيبل في دجانجو؟ أحصل على أمر "إعادة تعيين" لم يتم العثور على خطأ




database django (6)

إذا كنت ترغب في تنظيف قاعدة البيانات بأكملها ، يمكنك استخدام: python manage.py flush إذا كنت تريد تنظيف جدول قاعدة البيانات لتطبيق Django ، فيمكنك استخدام: python manage.py migrate appname zero

بعد هذا Django حسب المثال tutus-- هنا هنا: http://lightbird.net/dbe/todo_list.html

البرنامج التعليمي يقول:

"هذا يغير تخطيط الجدول لدينا وسنضطر إلى مطالبة Django بإعادة تعيين الجداول وإعادة إنشائها:

manage.py reset todo; manage.py syncdb manage.py reset todo; manage.py syncdb "

على الرغم من ذلك ، عند تشغيل manage.py reset todo ، أتلقى الخطأ:

$ python manage.py reset todo                                       
- Unknown command: 'reset'

هل هذا لأنني أستخدم sqlite3 وليس postgresql؟

يمكن لأي شخص أن يقول لي ما هو الأمر لإعادة قاعدة البيانات؟

الأمر: python manage.py sqlclear todo يرجع الخطأ:

$ python manage.py sqlclear todo    
CommandError: App with label todo could not be found.    
Are you sure your INSTALLED_APPS setting is correct?

لذلك أضفت "todo" إلى INSTALLED_APPS في settings.py ، python manage.py sqlclear todo مرة أخرى ، مما أدى إلى حدوث هذا الخطأ:

$ python manage.py sqlclear todo                                      
- NameError: name 'admin' is not defined

إذا كنت تستخدم Django 2.0 ثم

python manage.py flush 

سيعمل


باستخدام django 1.11 ، احذف ببساطة كل ملفات الترحيل من مجلد migrations لكل تطبيق (كل الملفات باستثناء __init__.py ). ثم

  1. إسقاط قاعدة البيانات يدويا.
  2. قم بإنشاء قاعدة البيانات يدويًا.
  3. تشغيل python3 manage.py makemigrations .
  4. تشغيل python3 manage.py migrate .

وفويلا ، تم إعادة تعيين قاعدة البيانات الخاصة بك تماما.


بالنسبة لي هذا حل المشكلة.

heroku pg:reset DATABASE_URL

heroku run bash
>> Inside heroku bash
cd app_name && rm -rf migrations && cd ..
./manage.py makemigrations app_name
./manage.py migrate

على غرار إجابة LisaD ، يمتلك Django Extensions أمرًا رائعًا reset_db يسقط كل شيء تمامًا ، بدلاً من اقتطاع الجداول مثل "flush". يجب عليك تحديد جهاز توجيه ، لذلك قد يبدو الأمر كما يلي:

python ./manage.py reset_db --router=default

لم يكن مجرد مسح الجداول هو إصلاح الخطأ المستمر الذي حدث عندما كنت أقوم بحذف الكائنات. قيامك بإجراء reset_db إصلاح المشكلة.


مجرد متابعة .
اعتبارًا من 2016 ( Django 1.9 ) ، تحتاج إلى كتابة:

heroku pg:reset DATABASE_URL
heroku run python manage.py makemigrations
heroku run python manage.py migrate

هذا سوف يعطيك قاعدة بيانات جديدة جديدة داخل Heroku.





reset