Katika somo hili tutajifunza jinsi Django hutumia migrations kuunda na kubadilisha tables kwenye database kulingana na models tunazoandika. Tutapitia maana ya migration, hatua za kuitumia, umuhimu wake, misingi ya makemigrations na migrate, pamoja na mfano halisi kutoka kwenye project yetu ya pybongo (app: menu).
Django haitengenezi table moja kwa moja mara tu unapounda model; badala yake hutumia mfumo wa migrations unaosimamia mabadiliko yote ya database. Hii inafanya kazi kuwa salama, rahisi, na isiyohitaji kuandika SQL mwenyewe. Somo hili litakufundisha jinsi migrations zinavyofanya kazi na namna ya kuzitumia kwa usahihi.
Nataka ukumbuke kuwa, kwneye somo lililopita nimekueleza kuwa model ni class ambayo ndio inaeleza structure ama muundo wa table zetu kwneye database. Sasa baada ya kutengeneza structure hiyo ama muundo wa hiyo table, hapa tutajifunza kufanya migration yaani kutengeneza table zenyewe kulingana na model. ni sawa na kusema kuwa tunazifanya model zituletee kitu tunachokitaka.
Migration ni faili maalum linalotengenezwa na Django ili kurekodi na kutekeleza mabadiliko yote unayofanya kwenye model. Hili faili linaelezea Django jinsi ya:
Kuunda table mpya
Kuongeza field mpya kwenye table
Kubadilisha field
Kufuta field au table
Kwa kifupi:
Migration = Maelezo ya mabadiliko ya database yanayotokana na models.
Huhifadhi historia ya mabadiliko ya database
Huondoa haja ya kuandika SQL manually
Huleta usawa kati ya code na database
Huwawezesha developers wengi kufanya kazi kwenye project moja bila migongano
Django hutumia hatua mbili muhimu:
Baada ya kuunda au kubadilisha model, andika:
python manage.py makemigrations
Hii inasoma models zako na kutengeneza faili kama:
menu/migrations/0001_initial.py
Faili hili linaelezea Django kuwa unataka:
Kutengeneza table lenye fields ulizozitaja
Kuandaa structure ya table kwa database
faili hili utalikuta kwneye folda linaloitwa migrations. na kila tutakapofanya migration basi faili ligine litatengenezwa.
Baada ya kukamilisha hatua ya kwanza, sasa unaitekeleza kwa:
python manage.py migrate
Amri hii:
Huchukua migrations zote
Huzitekeleza katika database halisi (sqlite, mysql, postgresql n.k.)
Hutengeneza au kusasisha tables
Model tuliyotengeneza:
from django.db import models
class MenuItem(models.Model):
jina = models.CharField(max_length=100)
maelezo = models.TextField(blank=True)
muda_upatikanaji = models.CharField(max_length=50)
bei = models.DecimalField(max_digits=10, decimal_places=2)
def __str__(self):
return self.jina
Hatua:
python manage.py makemigrations
python manage.py migrate
Matokeo:
Django inaunda table mpya kwenye database inayoitwa menu_menuitem
Ina fields: jina, maelezo, muda_upatikanaji, bei
Hapo utaona mabadiliko kwnye faili la sqlite3 ambalo ndio faili la database. Huko mbeleni tutajifunza kuhusu aina nyingine za database.
| Amri | Kazi Yake |
|---|---|
python manage.py showmigrations |
Kuonyesha migrations zote na hali yake |
python manage.py sqlmigrate menu 0001 |
Kuonyesha SQL ya migration |
python manage.py makemigrations menu |
Tengeneza migration kwa app fulani tu |
Django hutumia migrations kusimamia mabadiliko ya database.
makemigrations huandaa faili la mabadiliko.
migrate huandika mabadiliko kwenye database.
Mfumo huu husaidia kuhakikisha models zako zinalingana na database bila kuandika SQL manually.
Ni hatua ya lazima mara tu unapoongeza au kubadilisha model yoyote.na Shell)?
Umeionaje Makala hii.. ?
Katika somo hili tutakwend akujifunza jinsi ya kutumia while loop kwneye python
Soma Zaidi...Katika somo hili utakwend akujifunza maana ya object, na sheria za kuandika object.
Soma Zaidi...Katika somo hili tunakwenda kujifunza aina nyingine za data ambazo hutumika kwenye python.
Soma Zaidi...Katika somo hili utajifunza maana ya encapsulation na sheria za uandishi wake
Soma Zaidi...Katika somo hili utajifunz akutumia database kwenye python
Soma Zaidi...Katika somo hili utakwenda kujifunza aina za data ambazo hutumika kwenye python. hapa utajifunza aina kuu 3 za data.
Soma Zaidi...Katika somo hili utakwenda kujifunz ajinsi ya kusoma mafaili na mitindo mbalimbali ya kusoma data
Soma Zaidi...Somo hili linazungumzia hatua ya kuunda navigation menu na kutumia template inheritance kwa njia ya kitaalamu katika Django.
Soma Zaidi...Katika somo hili utakwenda kujifunza vipi django inaweza kuwasiliana na database, utajifunza kuusu orm na model
Soma Zaidi...