Populating Database in Django
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