Bisakah saya tampil dumpdata
di Django hanya pada satu model, daripada seluruh aplikasi, dan jika demikian, bagaimana?
Untuk suatu aplikasi adalah:
python manage.py dumpdata myapp
Namun, saya ingin beberapa model tertentu, seperti "myapp.mymodel" dibuang. Alasannya, saya punya beberapa set data besar, 3 juta plus, dalam aplikasi yang sama yang tidak ingin saya buang.
Jawaban:
Pada versi 1.1 dan lebih tinggi,
dumpdata
perintah manajemen Django memungkinkan Anda untuk membuang data dari masing-masing tabel:Anda juga dapat memisahkan beberapa aplikasi dan model pada baris perintah. Inilah definisi kanonik:
sumber
--indent 4
setelahdumpdata
Seperti disebutkan, Anda tidak bisa melakukan ini melalui perintah manage.py di Django 1.0. Namun Anda dapat menggunakan skrip untuk mengekspor file JSON, dan memuatnya menggunakan
loaddata
:sumber
Ambil semua data ke dalam format json dari model Django.
Sintaksis:
Sebagai contoh membuang data dari Model group_permission yang berada di aplikasi default auth di Django.
Untuk output, lihatlah di konsol .
sumber
Saya pikir Anda punya solusi dalam pertanyaan Anda. Anda dapat membuang model individual seperti ini:
sumber
Untuk sukses saya harus mengatakannya dua kali, dan menentukan modelnya dua kali, seperti:
Kalau saja saya bilang
Saya dibanjiri dengan semua model di myapp2, terlepas dari kenyataan bahwa saya menentukan my_model.
sumber
Sebagai solusi Anda bisa membuat aplikasi lain dan menyalin model tetapi arahkan ke tabel yang ada dengan opsi meta db_table. Maka Anda bisa membuang model yang Anda salin ke aplikasi baru. Anda aplikasi yang ada tidak akan terpengaruh.
sumber
Saya telah membuat perintah manajemen, menghasilkan fixture pada basis per model. Jadwal dapat dibuat dengan menjalankan:
kode di: https://gist.github.com/2394883
sumber
Untuk menulisnya di file tertentu:
sumber