2012. február 23.

Adatbázis modell újratervezése: Django és South

Ebben az írásban egy módszert fogunk bemutatni, amely lehetővé teszi adatbázisunk modelljének gyors és könnyű fejlesztését, valamint gyors és biztonságos újratervezését. Ehhez a Django webes keretrendszerbe beépített ORM-et fogjuk használni. Tudását kiegészítve és bővítve a South adatbázis migrációkkal.


Először tisztázzuk az eszközválasztást. A Django, a híres jazz gitárosról elnevezett Python nyelven implementált webes keretrendszer egy részét, a Django ORM rendszerét fogjuk használni. A bemutatott példa mégsem elsődlegesen webes megjelenésre tervezzük. Miután adatbázisunkat megterveztük vagy átterveztük, nyugodtan kivehetjük a Django keretrendszer alól. A Django webes keretrendszer egyik nagy előnye, hogy nagyon moduláris. Minden szolgáltatását külön-külön ki- és beemelhetjük. Ez nagy szabadságot ad a keretrendszer felhasználójának és lehetőséget biztosít nagyfokú újrahasznosított kódok, alkalmazások gyártására.

A South

A South, egy a Django ORM-hez csatlakozó alkalmazás. Célja és funkciója, hogy az adatbázis modellek módosítási folyamatába egy újabb lépcsőt iktat. A migrációkat. Ezt az eljárás, a nagy testvérnek minősülő Ruby nyelven implementált Rails keretrendszerből származik. A Railsnél ez a folyamat csak nagy nehezen kapcsolható ki. De kiiktatása, mint ahogy látni fogjuk, nem érdemes.

Miért van szükségünk migrációkra?

Előbb azt mondtuk, hogy egy új lépést vezet be a fejlesztésbe. Ezt most pontosítjuk. Nem csak egy lépést, hanem egy nagyon fontos, a fejlesztési folyamat számára nagyon lényeges plusz lépésről beszélhetünk. Minden egyes módosításáról először egy migrációt készítünk. Az elkészített migráció alapján pedig elvégezhetjük a modell és az adatbázis módosítását. - Ezzel a lépéssel nem csak arra nyílik lehetőségünk, hogy nyomon követhessünk a modellünk és az adatbázisunk fejlődősét. Ha csupán erre lenne lehetőségünk, akkor tekinthetnénk egyszerű adatbázis-verziókövetésnek. Ennél többről van szó. Ezt fogjuk kihangsúlyozni a példánkban is, ahol kifejezetten az adatmigrációkkal foglalkozunk, amely képes a jelenlegi adatokat átalakítani az új modellnek megfelelően. Illetve, képes ezeket a módosításokat vissza is fordítani, ha mégsem lennénk megelégedve az eredménnyel.

A példa alkalmazás

A példa alkalmazásunk modellje csupán egyetlen egy osztályt fog ismerni. Az Account-ot (felhasználó). Egyetlen mezője lesz: a fullname (teljes név). Ezt a nagyon kezdetleges modellünket fogjuk átalakítani úgy, hogy megkülönböztethessük a kereszt- és vezetékneveket. A kereszt- és vezetéknévből pedig mi magunk állíthatjuk elő majd a teljes nevet.



Összegzés és előnyök

A migráció és a Django ORM-jének bemutatása mellett egy újabb előnyre szeretnénk felhívni a figyelmet és érvelni az ORM-ek használata mellett. Az adatbázisokat soha nem önmagukban használjuk. Ha az adatokat módosítani akarjuk, akkor sem egyből az adatbázisban végezzük el a műveleteket. Sokkal kényelmesebb és biztonságosabb, ha egy külső programot használunk erre a műveletre. Egy külső program megvéd bennünket önmagunktól. Megvéd attól, hogy figyelmetlenségből, ismétlődő feladatok rutinjának monotóniájából hibákat kövessünk el. A külső program pedig sokkal több ellenőrzést és informatívabb visszajelzéseket tud adni számunkra, amikor módosítást szeretnénk eszközölni az adatbázisunkban. - Nem utolsó sorban egy külső program képes a kimenet megváltoztatására, így lehetőségünk van eredményeinket másol által emészthető formában ölteni.

Nincsenek megjegyzések: