Muammo
Nima sodir bo'ldi?
Tester admin panelda "Yo'nalishlar" sahifasini ochdi. Ro'yxatda Volgograd → Buxoro yo'nalishi ko'rinayapti, narxi $0.00. Tester bu yozuvni o'chirmoqchi bo'lganda 404 Not Found xatosi qaytdi.
Ya'ni: yozuv UI da ko'rinyapti, lekin o'chirish imkonsiz — chunki u aslida tizimda mavjud emas.
Sabab
Nima uchun bu sodir bo'ldi?
Loyihada eski ma'lumotlar bazasidan (v1) yangisiga (v2) migratsiya jarayoni boradi. Muammo shundaki:
- UI (frontend) hali ham eski bazadan o'qiyapti (GET so'rovi)
- API (backend) esa yangi bazaga yozadi (DELETE so'rovi)
- Eski bazada yozuv mavjud, yangi bazada esa yo'q
- Natijada: ko'rishingiz mumkin, lekin boshqarishingiz mumkin emas — "arvoh yozuv"
API javob
Server nimani qaytardi?
DELETE /api/v2/routes/8821 → 404 Not Found
{
"error": "RECORD_NOT_FOUND",
"message": "Yozuv topilmadi",
"resource": "route",
"id": 8821
}
Tahlil
QA sifatida nimaga e'tibor berish kerak?
- Narx $0.00 — bu allaqachon signal. Haqiqiy yo'nalishda narx 0 bo'lishi mantiqiy emas
- O'chirish 404 qaytaradi — yozuv UI da bor, lekin backend topa olmaydi
- Ikki turli manba — bu "dual-read" arxitektura xatosi
- Migratsiya to'liq tugallanmagan — eski ma'lumotlar ko'chirilmagan
Yechim
Qanday tuzatildi?
- Barcha yozuvlar eski bazadan yangisiga to'liq migratsiya qilindi
- UI va API bitta manba (yangi baza) dan o'qish/yozishga o'tkazildi
- Sinxronizatsiya tekshiruvi qo'shildi — agar manbalarda farq bo'lsa, ogohlantirish chiqadi
- Migratsiya skripti uchun avtomatik testlar yozildi
QA uchun dars
Migratsiya paytida har doim ikki narsani tekshiring: 1) Ma'lumotlar to'liq ko'chirilganmi? 2) UI va API bir xil manbadan o'qish/yozishyaptimi? "Arvoh yozuvlar" — bu eng nozik va topish qiyin buglardan biri.