Populating Database in Django

Khoirul Khuluqi Abdulloh
Scrum Booster
Published in
2 min readApr 18, 2019

Data seeding adalah proses pengisian awal dari sebuah database dengan data. Data-data yang diisi diawal ini dibutuhkan supaya aplikasi dapat berjalan dan dapat digunakan oleh pengguna. Data tersebut dapat berupa data dummy yang dapat berguna pada masa pengembangan, ataupun data-data yang memang diperlukan seperti akun administrator. Biasanya data yang dinisialisasi pada data seeding ini tidak berjumlah besar.

Jika data seeding dilakukan secara manual dan banyak komputer lokal milik para developer yang membutuhkan data awal tersebut, maka akan sangat banyak waktu yang dibutuhkan. Oleh karena itu diperlukan automatic data seeding pada pengaturan awal aplikasi agar data seeding dapat dilakukan secara otomatis.

ScrumBooster telah mengimplementasikan Automatic Database Seeding untuk memasukan seluruh data yang diperlukan kedalam database. Hal ini dilakukan dengan membuat file populatedb.py yang berisi script untuk inisialisasi data. Script pada file ini nantinya dapat dijalankan dengan command

python manage.py populatedb

Berikut adalah potongan isi dari file populatedb.py yang telah tim kami buat

class Command(BaseCommand):
def handle(self, *args, **options):
product_backlog_phase = Phase.objects.create(title="Product Backlog")
sprint_planning_phase = Phase.objects.create(title="Sprint Planning")
sprint_execution_phase = Phase.objects.create(title="Sprint Execution")
sprint_evaluation_phase = Phase.objects.create(title="Sprint Evaluation")
...

Data Migration

Database Migration dapat disebut juga dengan version control dari database. Hal ini berguna ketika ada perubahan pada database seperti menambah atribut baru, menambah table baru, dan sebagainya. Database Migration diperlukan supaya tim developer dapat melakukan modifikasi dan berbagi skema database dengan mudah.

Pada django, telah disediakan cara untuk membuat script database migration, yaitu

python manage.py makemigrations

Kemudian, disediakan pula command untuk mengimplementasikan script migrasi tersebut ke database

python manage.py migrate

--

--