Mengikuti tutotrial Django by Example ini di sini: http://lightbird.net/dbe/todo_list.html
Tutorialnya mengatakan:
"Ini mengubah tata letak tabel kami dan kami harus meminta Django menyetel ulang dan membuat ulang tabel:
manage.py reset todo; manage.py syncdb
"
meskipun, ketika saya menjalankan manage.py reset todo
, saya mendapatkan kesalahan:
$ python manage.py reset todo
- Unknown command: 'reset'
Apakah ini karena saya menggunakan sqlite3 dan bukan postgresql?
Adakah yang bisa memberi tahu saya apa perintah untuk mereset database?
Perintah: python manage.py sqlclear todo
mengembalikan kesalahan:
$ python manage.py sqlclear todo
CommandError: App with label todo could not be found.
Are you sure your INSTALLED_APPS setting is correct?
Jadi saya menambahkan 'rencana' ke INSTALLED_APPS saya di settings.py, dan menjalankan python manage.py sqlclear todo
lagi, menghasilkan kesalahan ini:
$ python manage.py sqlclear todo
- NameError: name 'admin' is not defined
Jawaban:
reset
telah digantiflush
dengan Django 1.5, lihat:sumber
Sepertinya jawaban 'siram' akan berfungsi untuk beberapa, tetapi tidak semua kasus. Saya tidak hanya perlu mengosongkan nilai dalam database, tetapi juga membuat ulang tabel dengan benar. Saya belum menggunakan migrasi (hari-hari awal) jadi saya benar-benar perlu menghapus semua tabel.
Dua cara yang saya temukan untuk menjatuhkan semua tabel, keduanya membutuhkan sesuatu selain inti django.
Jika Anda menggunakan Heroku, jatuhkan semua tabel dengan pg: reset:
Jika Anda dapat memasang Ekstensi Django, ini mempunyai cara untuk melakukan penyetelan ulang lengkap:
sumber
INSTALLED_APPS
dalamsettings.py
.Mirip dengan jawaban LisaD, Django Extensions memiliki perintah reset_db hebat yang benar-benar menghapus semuanya, alih-alih hanya memotong tabel seperti yang dilakukan "flush".
python ./manage.py reset_db
Hanya membersihkan tabel tidak memperbaiki kesalahan terus-menerus yang terjadi saat saya menghapus objek. Melakukan reset_db memperbaiki masalah.
sumber
--router
argumen, mungkin itu opsional sekarang, lima tahun kemudian? :)jika Anda menggunakan Django 2.0 Kemudian
akan bekerja
sumber
Jika Anda ingin membersihkan seluruh basis data, Anda dapat menggunakan: python manage.py flush Jika Anda ingin membersihkan tabel basis data dari aplikasi Django, Anda dapat menggunakan: python manage.py migrate appname zero
sumber
Dengan django 1.11, cukup hapus semua file migrasi dari
migrations
folder setiap aplikasi (semua file kecuali__init__.py
). Kemudianpython3 manage.py makemigrations
.python3 manage.py migrate
.Dan voilla, database Anda telah diatur ulang sepenuhnya.
sumber
python3 manage.py makemigrations
danpython3 manage.py migrate
akan mengurusnya, setidaknya di django 2.0Bagi saya ini memecahkan masalah.
sumber
Ikuti saja jawaban @ LisaD .
Mulai 2016 (
Django 1.9
), Anda perlu mengetik:Ini akan memberi Anda database baru yang segar dalam Heroku.
sumber
Hapus database Anda secara manual. Pastikan Anda membuat cadangan terlebih dahulu (dalam kasus saya db.sqlite3 adalah database saya)
Jalankan perintah ini
manage.py migrate
sumber
menghapus konten db lama,
Jangan lupa untuk membuat superuser baru:
sumber