Django: Menyelesaikan Ralat "Jadual Tidak Wujud"
Ralat ini berlaku apabila Django cuba melaksanakan operasi pangkalan data pada jadual yang tiada lebih lama wujud, biasanya disebabkan oleh pemadaman manual atau perubahan dalam model aplikasi.
Penjelasan Masalah:
Selepas menjatuhkan jadual berkaitan model, arahan syncdb cuba untuk mencipta jadual semula. Walau bagaimanapun, memandangkan model untuk jadual itu masih terdapat dalam models.py, Django menjangkakan jadual itu berada di sana tetapi mendapati ia tiada. Ini mengakibatkan ralat "Jadual tidak wujud".
Langkah Penyelesaian:
Laksanakan migrasi (Untuk versi Django >= 1.7):
ATAU
Laksanakan pemindahan skema (Untuk versi Django < 1.7):
Contoh untuk versi Django >= 1.7:
# Comment out the model in models.py # class feed(models.Model): # ... # Execute migrations python manage.py makemigrations python manage.py migrate # Comment in the model in models.py # class feed(models.Model): # ... # Re-execute migrations python manage.py migrate
Contoh untuk versi Django < 1.7:
# Comment out the model in models.py # class feed(models.Model): # ... # Execute schema migration python manage.py schemamigration someapp --auto python manage.py migrate someapp --fake # Comment in the model in models.py # class feed(models.Model): # ... # Re-execute schema migration python manage.py migrate someapp
Dengan mengikut langkah ini, anda boleh mencipta semula jadual yang hilang dan menyelesaikan ralat "Jadual tidak wujud".
Atas ialah kandungan terperinci Bagaimana untuk Membetulkan Ralat 'Jadual Tidak Wujud' dalam Django?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!