Mengisi Database dengan Data Dummy Menggunakan django-seed


Artikel kali ini akan membahas bagaimana caranya untuk mengisi database dalam project kita dengan data dummy atau data fake untuk tujuan menguji project yang kita buat menggunakan module django-seed. Dengan melakukan generate data dummy dapat menghemat waktu kita dibanding harus mengisi form terus-menerus hanya untuk mendapatkan data yang banyak agar bisa melakukan tes (misalnya menguji fitur paginasi). Berikut ini adalah poin-poin yang akan dibahas dalam artikel ini, silahkan klik nomor halaman di setiap akhir artikel ini untuk lanjut ke halaman selanjutnya.
  • Sedikit tentang django-seed
  • Install django-seed
  • Implementasi django-seed

Sedikit tentang django-seed


Bila anda pernah mengembangkan project dengan menggunakan framework Laravel, tentu tidak asing lagi dengan yang namanya Faker. Lalu bagaimana dengan framework Django ? Ada banyak juga module untuk django yang fungsinya sama seperti Faker, yakni mengenerate data dummy untuk mengisi database dalam project kita. Hal ini dilakukan untuk menghemat tenaga dibanding harus mengisi form-form yang kita buat terlebih dahulu secara manual ketika ingin menguji suatu fitur dalam project kita, misalnya fitur paginasi.
Salah satunya adalah module bernama django-seed. Module ini memiliki kemampuan untuk membaca nama dan jenis field yang ada di model yang anda buat kemudian mengisinya dengan data yang relevan secara otomatis. Meskipun begitu, tidak selalu data yang dihasilkan akurat. Namun, module ini juga menyediakan kemampuan untuk kita melakukan custom. Jadi kita dapat menentukan sendiri kriteria data yang perlu dimasukkan dalam setiap field yang ada dalam model. Bila anda sudah cukup mengerti konsep kerja module ini, silahkan lanjut ke nomor halaman berikutnya untuk mengetahui bagaimana cara installnya.

Install django-seed

Cara install module ini tidaklah sulit, seperti biasa kita dapat menggunakan pip. Jalankan perintah berikut :
$ pip install django-seed
Setelah berhasil terpasang, sekarang tambahkan ke daftar INSTALLED_APPS pada file settings.py seperti berikut ini :
Kini module ini sudah siap digunakan, silahkan lanjut ke halaman berikutnya.

Implementasi django-seed

Penggunaan django-seed bisa dibilang cukup mudah, menurut dokumentasinya ada dua cara yang bisa dilakukan untuk mempopulasikan data fake ke database. Pertama dengan command line, dan kedua melalui code / script. Kali ini saya hanya akan menunjukkan bagaimana melakukan dengan menggunakan code / script.
Sebelum memulai, saya ingin menunjukkan terlebih dahulu struktur model dalam contoh ini, kira-kira seperti ini isi file models.py milik saya.
Seperti yang sudah disebutkan sebelumnya bahwa module ini memiliki kemampuan untuk menyesuaikan isi data berdasarkan nama dan jenis field, namun terkadang tidak selalu data yang dihasilkan bisa sesuai. Akan tetapi kita bisa menentukan sendiri kriteria data yang diinginkan dengan dengan membuat variable  dictionary yang key-nya berupa nama-nama field dan valuenya merupakan function yang menentukan hasil data untuk field yang bersangkutan.
Untuk lebih memudahkan, disini saya membuat sebuah script sederhana yang akan menjalankan django_seed, saya membuat file seed.py yang berisi seperti berikut ini:
KETERANGAN : Perhatikan pada deklarasi function seeding() ! Saya membuat dua file dengan tipe dict yang berisi kriteria data yang diinginkan, kemudian saya memasukkan model-model yang ingin dipopulasikan datanya dengan menggunakan method add_entity() pada object seeder yang sebelumnya dibuat. Argument pertama yang dimasukkan adalah model yang bersangkutan, kemudian pada argumen kedua saya memasukkan banyaknya data yang ingin dihasilkan untuk model yang bersangkutan, kemudian pada argumen ketiga saya memasukkan kriteria data yang ingin dihasilkan. Setelah menambahkan model-model tersebut, tahap selanjutnya adalah menjalankan method execute() pada object seeder.
Nah, selanjutnya saya akan menunjukkan bagaimana menggunakan script ini. Silahkan masuk ke django shell kemudian import function seeding() yang tadi dideklrasikan pada file seed.py. Setelah diimport kita hanya cukup menjalankannya, untuk lebih jelasnya berikut ini adalah code yang saya masukkan dalam django shell.
>>> from employees.seed import seeding
>>> seeding()
Harap diperhatikan pula, bahwa darimana anda mengimport function tersebut itu juga tergantung dimana anda meletakkan file seed.py dalam project anda. Jadi silahkan disesuaikan sendiri nanti. Setelah function tersebut berhasil dieksekusi tanpa error, maka database anda kini sudah terisi. Berikut ini screenshot ketika saya melihat data hasil generate tadi melalui django admin.
Hasil data dari django-seed
Seperti yang terlihat pada gambar diatas, sudah ada 100 data employee sesuai dengan yang saya inginkan. Oh iya ada satu hal penting lagi yang perlu diketahui, apabila dalam model anda terdapat foreign key ke model lain, maka ketika memasukkan model ke seeder harus model tujuan foreign key itu dulu yang dimasukkan. Untuk lebih jelasnya, silahkan lihat lagi script saya diatas. Karena model Employee memiliki foreign key ke model Company, maka dari itu saya memasukkan model Company terlebih dahulu ke seeder ketimbang model Employee. Saya kita sudah cukup bisa dipahami, bila ada pertanyaan silahkan saja ditanyakan melalui kolom komentar yang telah disediakan di bawah artikel ini. Semoga bermanfaat !

Referensi

Page : 1 2 3 4

0 komentar