Mavzu: Dastlabki ma'lumotlar bazasi migratsiyasini qo'llash.
Topshirdi: Haydarniyozov A.
Reja:
Loyiha yaratish.
Loyihaga ilova qo'shish.
Djangoda ma'lumotlar migratsiyasi haqida ma’lumot.
Loyiha yaratish
Loyiha bu bitta katalogda joylashgan bitta biznes mantiqqa tegishli hamma dastur kodlariga(fayllar) aytiladi. Quyidagi komanda yordamida loyiha yaratamiz:
>django-admin startproject dars_1 , Shunda quyidagi fayllar paydo bo'ladi:
Loyiha tarkibi
Eng yuqoridagi dars_1 katalog bu loyiha nomi. Ichki dars_1 katalogida loyihaga tegishl sozlash modullari joylashgan. Odatda u loyiha nomi bilan bir hil bo'ladi.
• __init __. py - bu bo'sh fayl bo'lib, u joylashgan katalog paketligini bildiradi;
• settings.py - loyihaga tegishli sozlash moduli.
Unda loyihaning ma'lumotlar bazasi sozlamalari, asosiy papkalarning yo'llari, muhim parametrlar, xavfsizlik bilan bog'liq va boshqa sozlamlar mavjud;
• urls.py - loyiha darajasidagi marshrut moduli;
• wsgi.py - loyihani WSGI interfeysi orqali veb -server bilan bog'laydigan modul;
• asgi.py - loyihani ASGI interfeysi orqali veb -server bilan bog'laydigan modul;
Loyihaga ilova qo'shish
Ilova bu loyihaning biror bo'limi yoki ichki tizimi funksiyasini bajarishi mumkin. Ilova ham aslida paketdan iborat bo'ladi. Uni o'rnatish uchun quyidagi buyruqni yozamiz:
> django-admin startapp news
Natijada bizda news paketi paydo bo'ladi, uni ichida esa quydagi fayllar bo'ladi:
Ilova
Eng yuqoridagi dars_1 katalog bu loyiha nomi. Ichki dars_1 katalogida loyihaga tegishli sozlash modullari joylashgan. Odatda u loyiha nomi bilan bir hil bo'ladi.
• __init __. py - bu bo'sh fayl bo'lib, u joylashgan katalog paketligini bildiradi;
• settings.py - loyihaga tegishli sozlash moduli.
Unda loyihaning ma'lumotlar bazasi sozlamalari, asosiy papkalarning yo'llari, muhim parametrlar, xavfsizlik bilan bog'liq va boshqa sozlamlar mavjud;
• urls.py - loyiha darajasidagi marshrut moduli;
• wsgi.py - loyihani WSGI interfeysi orqali veb -server bilan bog'laydigan modul;
• asgi.py - loyihani ASGI interfeysi orqali veb -server bilan bog'laydigan modul;
Migratsiya nima?
Migratsiya ma'lumotlar bazalarini bir dizayndan ikkinchisiga ko'chirishga imkon beradi.
migratsiya papkasi : migratsiyalarni saqlash uchun mo'ljallangan - ma'lumotlar bazasi tuzilishini modellar ta'rifi bilan sinxronlashtirishga imkon beruvchi skriptlar
Djangodagi bu ikki command boshda ko’pchilikka tushunarsiz bo’ladi:
makemigrations – bazaning hozirgi shakli va o’zgartirish rejalashtirilgan shaklini taqqoslab, farqlarni aniqlaydi, hozirgi ma’lumotlar yangi strukturaga mos kelishini tekshiradi va o’zgarishlarni ko’rsatadigan migration fayl yozadi. migrate – tayyor bo’lgan migration fayldagi o’zgarishlarni ma’lumotlar bazasida qo’llaydi
Migration
Ma’lumotlar bazasi dizaynga o’zgarish kiritilganda kelajakdagi xatoliklarning oldini olish yoki yangi xususiyatlar qo’shish uchun bu o’zgarishlarni yozib borish kerak bo’ladi.
Har bir mana shunday yozilgan o’zgarish migration deyiladi. Masalan, bazaga kiritilgan o’zgarish xatolik keltirib chiqarsa yozib qo’yilgan migrationlarni qarab, qaysi o’zgarish xatolik chiqargan bo’lsa, o’sha o’zgarishdan oldingi migrationga qaytarib qo’yishimiz mumkin.
Migratsiya - bu berilgan modelga ko'ra yaratiladi va yaratilgan fayllar
Migratsiya - bu berilgan modelga ko'ra yaratiladi va yaratilgan fayllar
ma'lumotlar bazasini, strukturasi (jadval, maydonlar, indekslar, qoidalar) yaratishda ishlatiladi
Migratsiya yaratish uchun quyidagi komandani yozamiz:
>python manage.py makemigrations
Natijada bizda migratsiya fayllari paydo bo'ladi:
Dvb 0001_initial.py - bu paydo bo'lgan migratsiya fayli.
Dvb 0001_initial.py - bu paydo bo'lgan migratsiya fayli.
Hohlasak sql so'rovni ko'rishimiz mumkin. Uning uchun ilova nomi va migratsiya raqamini yozishimiz kerak:
>manage.py sqlmigrate yangiliklar 0001
Endi u yordamida biz MB yaratish, o'zgartirish kiritish mumkin. Uning uchun quyidagi buyruqni yozamiz:
>python manage.py migrate
Endi biz MBga ma'lumot kiritishimiz, olishimiz, o'zgartirishimiz va o'chirishimiz mumkin…