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.
...
Jiunge nasi WhatsApp kupata update zetu
Umeionaje Makala hii.. ?
Katika somo hili tutajifunza namna ya kusoma data kutoka kwenye database kupitia Django ORM, jinsi ya kuzipeleka kwenye view, na jinsi ya kuzionyesha kwenye HTML template.
Soma Zaidi...Katika somo hili utakwend akujifunza kuchakata data kwa Kutumia Loops na Conditions katika Django Templates
Soma Zaidi...Katika somo hili utakwend akujifunz ajinsi ya kutumia html kwneye python
Soma Zaidi...Katika somo hili tunakwenda kujifunza aina nyingine za data ambazo hutumika 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 utakwend akujifunza matumizi ya for loop kwneye python
Soma Zaidi...Katika somo hili utakwend akujifunza jinsi ya kucheza na data kuzibadili kwa namna mbali mbali kwenye template
Soma Zaidi...Katika somo hili utajifunza maana ya variable, na sheria za kutengeneza variable kwenye python. Pia utajifunza maneno ambayo hayafai kutumiwa kama variable
Soma Zaidi...Katika somo hili utajifunza Jinsi ya Kuunda Simple Navigation Menu Katika Django kwa kutumia template
Soma Zaidi...Katika somo hili utajifunza jisni ya kujuwa aina ya data iliyotumika kwenye python
Soma Zaidi...