Duomenų bazės valdymas naudojant „Sinatra“

Kai mūsų žiniatinklio programa yra apibrėžta ir mes jau žinome, ką turime pasiekti, daug kartų būtina pasiekti tam tikrą duomenų atkaklumo formą, o tai reiškia, kad jos gauti duomenys kažkur saugomi, o vėliau naudojami ir tai daro duomenų bazę varikliai mums.

Tada, kai reikia, kad mūsų duomenys išliktų programose, turime ieškoti ar suprasti, kaip šias operacijas atlikti, ir nors šiandien tai gali atrodyti sudėtinga, yra daug įrankių, palengvinančių mūsų darbą, pvz. ORM kurie suteikia mums galimybę sukurti nuo variklio nepriklausomas struktūras, kad vargu ar kada nors parašysime gryną užklausą.

Jeigu Sinatra Yra keletas brangakmenių, kurie jau yra atsakingi už ryšius ir duomenų bazių administravimą, todėl pamatysime, kas jie yra ir kaip galime juos integruoti į savo programą.

Pasirinkite duomenų bazės variklį


Pirmas žingsnis, kurį turime padaryti, yra pasirinkti tinkamą mūsų duomenų bazės variklį, rinkoje yra daug sprendimų, kurių kiekvienas turi skirtingą paskirtį. Sinatra paprastai naudosime MySQL arba „PostgreSQL“ gamybos aplinkoje arba nesėkmingai SQLite kūrimo aplinkoje.

Šios pamokos atveju mes pasirinkome paskutinį variantą dėl jo lengvo diegimo ir greičio, kuriuo galime pradėti dirbti.

„SQLite“ diegimas


Norėdami įdiegti šį variklį, pirmiausia einame į jo oficialią svetainę ir atsisiųsime paketą, atitinkantį mūsų sistemą, daugelyje platinimų Linux Juose jau yra sumontuotas ir veikiantis variklis, todėl pamatysime, kaip atlikti šį procesą „Windows“.

Ankstesniame paveikslėlyje matome, kad turime atsisiųsti iš anksto sudarytus dvejetainius failus, kai tai bus padaryta, mes išpakuosime juos aplanke pavadinimu SQLite mūsų C: diske ir pridedame tą aplanką kaip aplinkos kintamąjį PATH. Kai rašoma, kai tai daroma aukščiau sqlite3 savo konsolėje turėtume pamatyti kažką panašaus į šį.

Kai šis žingsnis bus atliktas, dabar turime atsisiųsti atitinkamą tvarkyklę Rubinas, todėl savo komandų pulte turime parašyti taip:

 perlas įdiegti sqlite3
Tai turėtų duoti mums tokį rezultatą, kuris parodo, kad brangakmenis buvo sėkmingai įdiegtas norint prisijungti prie SQLite.

ORM


Kadangi turime savo duomenų bazės variklį, dabar atėjo eilė įsigyti ORMTai įrankis, leidžiantis duomenų bazės lenteles paversti objektais, tokiu būdu galime lengviau su jomis dirbti savo programoje.

PrivalumasPagrindinis privalumas ORM yra tai, kad tai leidžia mums būti nepriklausomiems nuo variklio, nes nereikia tiesiogiai rašyti SQL kodo, mes galime tiesiog pakeisti konfigūraciją ir atlikti atitinkamus perkėlimus.

Žinoma, yra daug galimybių dirbti Rubinas ir su Sinatra, tačiau vienas draugiškiausių pradėti „DataMapper“.

Įdiekite „DataMapper“


Šio įrengimas ORM Tai negali būti paprasčiau, ir tai dėl to, kad tai taip pat yra perlas, todėl mes tiesiog turime atlikti keletą instrukcijų savo konsolėje, pirmoji yra tokia, kuri padeda mums gauti pagrindinį komponentą:
 perlas įdiegti data_mapper
Tai turėtų duoti panašų rezultatą:

Dabar, kai turime bazę, mums tiesiog reikia įdiegti tvarkyklę „DataMapper“ gali bendrauti su SQLite, tam turime įdiegti šį brangakmenį:

 perlas įdiegti dm-sqlite-adapterį
Būtent tai leis mūsų programoms kurti lenteles ir naudoti duomenų bazę, nereikalaujant rašyti SQL kodo.

Prisijunkite prie duomenų bazės


Kadangi turime įdiegtas priklausomybes, dabar turime išbandyti, kaip veikia nauja duomenų patvarumo aplinka, todėl ketiname sukurti klasę. Ši klasė bus pagrindas, kuris leis mums sukurti lentelę ir joje saugoti įrašus, tai taip pat suteikia mums galimybę nerašyti kodo SQL tiesiogiai, kad ateityje, kai turėsime naudoti kitą duomenų bazės variklį, pakaks tiesiog pakeisti konfigūraciją.

Savo programų aplanke mes sukursime failą pavadinimu dainos.rb, tai, ką ši klasė turi padaryti, yra žemėlapis, kaip galime išsaugoti dainą duomenų bazėje, pažiūrėkime turinį ir paaiškinkime, ką daro kiekviena jos dalis:

 reikalauti 'dm-core' reikalauti 'dm-migrations' DataMapper.setup (: numatytasis, "sqlite3: // # {Dir.pwd} /musica.db") klasės Dainose yra DataMapper :: Išteklių savybė: id, Serial property: pavadinimas, eilutės ypatybė: trukmė, sveikojo skaičiaus ypatybė: išleidimo data, datos pabaiga DataMapper.finalize
Pirmiausia turime padaryti reikalauti iš pagrindinių komponentų „DataMapper“ tokiu atveju dm-šerdis Y dm-migracijos. Tada mes sukuriame konfigūracijos eilutę, kuri leidžia mums pirmiausia naudotis SQLite iš karto sukurti failą, šiuo atveju muzika.dbJei failas jau yra, tai reiškia, kad duomenų bazė jau egzistuoja, todėl ryšys būtų tiesiog užmegztas.

Pagaliau baigiame klasę dainos kuriame bus visa tai identifikuojančių atributų serija ir kitos klasės klasė „DataMapper“. Turėdami tai, esame pasirengę kitam etapui, ty išbandyti mūsų programą. Kadangi savo naršyklėje nesukūrėme nieko matomo, tinkamas laikas naudoti Interaktyvi rubino konsolė (irb), o tai leis mums patikrinti, ar viskas yra teisingame kelyje, be to, mes galime priprasti prie „DataMapper“.

Išbandykite mūsų programą


Pirmiausia savo terminale ar konsolėje turime eiti į aplanką, kuriame išsaugojome savo failą dainos.rb kadangi tai yra raktas į mūsų pavyzdžio plėtojimą, ten mes turime pradėti savo interaktyviąją konsolę Rubinas įvesdami komandą:
 irb
Kai tik pradėsime, galėsime tai padaryti reikalauti mūsų klasės, pateikdami komandą:
 reikalauti "./dainos"
Tai turi grįžti tiesa, jei tai pavyks, ką matome kitame paveikslėlyje.

Kitame veiksme turime naudoti įrankį auto_migrate apie „DataMapper“, tai leis mums sukurti lentelę su mūsų klasės atributais atitinkamame duomenų bazės faile. Norėdami tai padaryti, mes tiesiog rašome taip:

 Dainos.auto_migrate!
Tai sukuria reikiamą struktūrą įrašams saugoti.

Sukurkite mūsų pirmąją dainą


Dabar turime sukurti objektą, kuris leistų mums išsaugoti reikiamas vertes duomenų bazėje, todėl mes sukursime objektą, pavadintą daina:
 daina = Dainos.naujas
Norėdami vėliau jį išsaugoti naudodami šią komandą:

Tai jau suteikia mums pagrindinę platformą, kad galėtume įtraukti informaciją į mūsų duomenų bazę, pažiūrėkime, ką šiuo metu turėtų rodyti konsolė:

Kai tai bus padaryta, galime išsaugoti jo duomenis. Dar būdami konsolėje po vieną pridėsime savo objekto atributus, pažiūrėkime:

 song.title = „Nauja daina“ song.duration = „315“ daina.release_date = Date.new (2010) song.save
Kiekviena ankstesnė instrukcija buvo saugoma dainos objekte ir vykdoma sutaupyti visa tai saugoma duomenų bazėje. Tolesniame paveikslėlyje matome atliktą procesą.

Taip pat pažymime, kad Rubinas tai yra didžiosios ir mažosios raidės todėl turime būti atsargūs rašydami savo klases, nes konsolės atveju rašant klasę įvyko klaida Data, nes buvo parašyta data, kuri buvo aptikta iš karto. Galiausiai, jei norime susipažinti su išsaugotomis dainomis, pakanka parašyti šią instrukciją:

 Dainos.visos
Taip pat galime suskaičiuoti, kiek įrašų turime, atlikdami toliau nurodytus veiksmus.
 Dainos.skaita
Pabaigoje pažiūrėkime, kokį atsakymą gavome konsolėje, kai vykdome šias dvi komandas.

Įdėjome pirmąjį įrašą ir sėkmingai jį konsultavome, taip išmokdami naudotis duomenų baze Sinatra, nors pastabiausi galėjo suvokti, kad viskas, ką mes darėme, buvo tame Rubinas, ir tai buvo puiki idėja pademonstruoti, kaip žinoti Rubinas galime dirbti Sinatra be daugybės komplikacijų.

Padėsite svetainės plėtrą, dalintis puslapį su draugais

wave wave wave wave wave