C14 · Modul 02
Model data dan migrasi
42 langkah singkat, dari mudah sampai tantangan.
Level 1
Kenal
Level 2
Paham
Level 3
Terapkan
Level 4
Tantangan
Level 5
Pendalaman
Intinya
- Aturan yang harus selalu benar (total = subtotal + ongkir, alamat tepat saat antar, satu kunci idempotensi per pengguna) dijaga basis data dengan kendala, bukan hanya oleh kode API.
- Uang adalah bilangan bulat rupiah; harga dan nama produk disalin ke
pesanan_itemsaat memesan karena katalog berubah dan pesanan lama tidak boleh ikut berubah. - Skema berubah lewat migrasi bernomor yang maju saja; pelari mencatat nama dan checksum di
schema_migrations, menerapkan setiap migrasi dalam satu transaksi, dan menolak migrasi lama yang diubah. - Perubahan skema di produksi memakai expand/contract: tambah yang baru, pindahkan kode dan data bertahap, hapus yang lama paling akhir.
Sebelum mulai
±6 jam.
Modul ini memakai materi di bawah. Belum yakin? Ulas dulu bagian yang disebut.
- Modul 01 · Peta aplikasi full stackYang dipakai: repo
pesan-makmur,Pengaturan, datasetpesan - F2 · Modul 09 · Membuat tabel dan menjaga dataYang dipakai:
CHECK,UNIQUE,STRICT,ALTER TABLE - F2 · Modul 10 · Desain skemaYang dipakai: normalisasi
- F2 · Modul 12 · Dari SQLite ke PostgreSQL
- F2 · Modul 13 · Transaksi dan konkurensiYang dipakai:
BEGIN/ROLLBACK - F2 · Modul 14 · SQL dari Python
- F5 · Modul 08 · CD saat merge dan rollback + daftar periksa "Tayang"
Hasil belajar: menerjemahkan aturan bisnis Pesan Makmur menjadi kendala basis data (CHECK lintas kolom, UNIQUE gabungan, indeks unik parsial) dan membuktikannya dengan IntegrityError; memilih kapan menyalin data (snapshot harga) dan kapan menormalkan; menulis migrasi SQL bernomor dan pelari migrasi yang mencatat checksum, menerapkan setiap migrasi dalam satu transaksi, dan aman dijalankan ulang; merencanakan perubahan skema tanpa henti dengan pola expand/contract dan urutan rilis yang benar; membandingkan pelari buatan sendiri dengan Alembic.
Hasil lab: api/migrasi/0001_awal.sql dan 0002_riwayat_status.sql, pelari python -m app.migrasi yang membuat skema dari nol di PostgreSQL dan aman dijalankan dua kali, data contoh lokal, dan satu perubahan expand/contract yang dicoba sambil API tetap menyala.
Istilah di modul ini (12)
Ketuk istilah untuk melihat penjelasannya. Di materi, istilah bergaris titik membuka kartu yang sama. Semua istilah course
Bahan modul
Semua kode, latihan, dan data modul ini dalam satu zip, untuk dijalankan di laptop atau Google Colab.
- 19 contoh kode
- 7 berkas latihan + tes
- 1 berkas data
- requirements.txt
Lihat isi zip
- BACA-DULU.txt
- contoh_c14_02_42.py
- contoh_c14_02_74.py
- contoh_c14_02_104.py
- contoh_c14_02_131.py
- contoh_c14_02_154.py
- contoh_c14_02_324.py
- contoh_c14_02_395.sql
- contoh_c14_02_435.sql
- contoh_c14_02_511.py
- contoh_c14_02_563.py
- contoh_c14_02_587.py
- contoh_c14_02_753.py
- contoh_c14_02_778.py
- contoh_c14_02_1029.py
- contoh_c14_02_1087.py
- contoh_c14_02_1366.py
- contoh_c14_02_1392.py
- contoh_c14_02_1505.py
- contoh_c14_02_1570.py
- test_c14_02_1.py
- latihan_c14_02_2.sql
- latihan_c14_02_3.sql
- test_c14_02_4.py
- test_c14_02_5.py
- latihan_c14_02_6.sql
- test_c14_02_7.py
- pesan.sql
- requirements.txt