Једном када је наша веб апликација дефинисана и већ знамо шта треба да постигнемо, много пута је потребно постићи облик постојаности података, што се преводи у складиштење података које је негде прибавила, а затим у њихову употребу, а то чини базу података мотори за нас.
Након што имамо потребу да наши подаци остану у апликацијама, тада морамо тражити или разумјети како поступати с овим операцијама и иако то данас звучи сложено, постоје многи алати који нам олакшавају рад, на примјер ОРМ то нам даје могућност стварања структура које су независне од мотора тако да тешко да ћемо икада написати чисти упит.
У случају Синатра Постоји неколико драгуља који су већ задужени за везе и администрацију база података, па ћемо видети шта су то и како их можемо интегрирати у нашу апликацију.
Одаберите механизам базе података
Први корак који морамо да учинимо је да изаберемо одговарајући мотор базе података за нашу апликацију, на тржишту постоји много решења и свако са другачијом наменом, у случају Синатра углавном ћемо користити МиСКЛ или ПостгреСКЛ у производном окружењу, или ако то не успе СКЛите у развојним окружењима.
У случају овог водича, одлучили смо се за посљедњу опцију због једноставности инсталације и брзине с којом можемо почети радити.
Инсталирање СКЛите -а
Да бисмо инсталирали овај мотор, прво одемо на његову службену веб страницу и преузмемо пакет који одговара нашем систему, многе дистрибуције у Линук Они већ долазе са овим мотором инсталираним и функционалним, па ћемо видети како да спроведемо овај процес Виндовс.
На претходној слици видимо да морамо преузети унапред компајлиране бинарне датотеке, када то учинимо, распаковаћемо их у фасциклу под називом СКЛите у нашем Ц: диску и додајемо ту фасциклу као променљиву окружења у наш ПАТХ. Када се горе наведено уради приликом писања склите3 у нашој конзоли бисмо требали видети нешто попут следећег.
Након што је овај корак покривен, сада морамо преузети одговарајући управљачки програм за Руби, зато у нашој командној конзоли морамо написати следеће:
гем инсталл склите3Ово би нам требало дати резултат попут следећег који указује на то да је инсталација драгуља успела да би се повезали на СКЛите.
ОРМ
Пошто имамо наш механизам базе података, сада је ред да набавимо ОРМОво је алат који нам омогућава да претворимо табеле базе података у објекте, на овај начин можемо лакше радити са њима у нашој апликацији.
ПредностГлавна предност ОРМ је то што нам омогућава да будемо независни од строја, будући да не морамо директно писати СКЛ код, можемо једноставно промијенити конфигурацију и извршити одговарајуће миграције.
Наравно, постоји много опција за рад Руби и са Синатра, међутим, један од најпријатнијих за почетак је ДатаМаппер.
Инсталирајте ДатаМаппер
Инсталација овога ОРМ Не може бити једноставније, а то захваљујући чињеници да је и драгуљ, па једноставно морамо извршити неколико инструкција у нашој конзоли, прва је следећа која нам помаже да добијемо основну компоненту:
гем инсталл дата_мапперОво би требало да произведе резултат сличан следећем:
Сада када имамо базу, једноставно морамо инсталирати управљачки програм тако да ДатаМаппер може комуницирати са СКЛите, за ово морамо инсталирати следећи драгуљ:
гем инсталл дм-склите-адаптерОво ће омогућити нашим апликацијама да креирају табеле и користе базу података без потребе за писањем СКЛ кода.На крају, инсталација управљачког програма требала би нам дати следећу поруку у нашој конзоли.
Повежите се са базом података
Пошто имамо инсталиране зависности, оно што морамо да урадимо је да наставимо да тестирамо како функционише наше ново окружење за постојаност података, за ово ћемо креирати класу. Ова класа ће бити основа која ће нам омогућити стварање табеле и складиштење записа у њој, ово нам такође даје могућност да не морамо писати код СКЛ директно, тако да ће у будућности, када будемо морали да користимо други механизам базе података, бити довољна само промена конфигурације.
У нашој фасцикли са апликацијама ћемо креирати датотеку под називом песме.рб, оно што ова класа мора да уради је да има мапу како можемо да сместимо песму у базу података, да видимо садржај и затим објаснимо шта сваки њен део ради:
захтевати 'дм-цоре' захтевати 'дм-мигратионс' ДатаМаппер.сетуп (: подразумевано, "склите3: // # {Дир.пвд} /мусица.дб") класа Песме укључују ДатаМаппер :: Својство ресурса: ид, Серијско својство: титле, Стринг проперти: дуратион, Интегер проперти: релеасе_дате, Дате енд ДатаМаппер.финализеПре свега морамо то учинити захтевају кључних компоненти ДатаМаппер у овом случају дм-цоре И дм-миграције. Затим креирамо конфигурацијску линију која нам омогућава да је користимо СКЛите да бисте одмах креирали датотеку, у овом случају мусиц.дбАко датотека већ постоји, то значи да база података већ постоји, па би се једноставно успоставила веза.
Коначно идемо на час песме који ће садржати низ атрибута који га идентификују и укључивање друге класе ДатаМаппер. Овим смо спремни за следећу фазу, а то је тестирање наше апликације. Како у свом претраживачу нисмо направили ништа за видети, право је време да га употребите Руби интерактивна конзола (ирб), што ће нам омогућити да проверимо да ли је све на добром путу, осим што ће нам омогућити да се навикнемо на ДатаМаппер.
Испробајте нашу апликацију
Пре свега на нашем терминалу или конзоли морамо да одемо у фасциклу у којој смо сачували нашу датотеку песме.рб пошто је ово кључ за развој нашег примера, једном тамо морамо покренути нашу интерактивну конзолу Руби уписивањем наредбе:
ирбКада то покренемо, можемо то учинити захтевају нашег разреда постављањем наредбе:
захтевају „./ песме“Ово мора да се врати ако је успешно, што можемо видети на следећој слици.
Следећи чин морамо користити алат ауто_миграте оф ДатаМаппер, ово ће нам омогућити да креирамо табелу са атрибутима наше класе у одговарајућој датотеци базе података. За ово једноставно пишемо следеће:
Сонгс.ауто_миграте!Што ствара неопходну структуру за складиштење записа.
Направите нашу прву песму
Оно што морамо да урадимо је да направимо објекат који ће нам омогућити складиштење потребних вредности у бази података, за то ћемо направити објекат који се зове сонг:
сонг = Песме.невДа бисте га касније сачували следећом командом:
Ово нам већ даје основну платформу за укључивање информација у нашу базу података, да видимо шта би конзола требала показати у овом тренутку:
Када то учинимо, можемо да сачувамо податке за то. Док смо још у нашој конзоли додаћемо атрибуте нашег објекта један по један, да видимо:
сонг.титле = „Нова песма“ сонг.дуратион = „315“ сонг.релеасе_дате = Дате.нев (2010) сонг.савеСвако од претходних упутстава складиштило се у објекту песме и извршавало метод сачувати све се то чува у бази података. На следећој слици видимо процес који смо спровели.
Такође напомињемо да Руби То је Велика и мала слова тако да морамо бити опрезни у начину писања часова, јер је у случају конзоле дошло до грешке при писању класе Датум, пошто је написан Датум, што је одмах откривено. На крају, ако желимо да погледамо сачуване песме, довољно је да напишемо следеће упутство:
Песме.свеТакође можемо да направимо рачун о томе колико записа имамо са следећим.
Песме.бројЗа крај, да видимо одговор примљен у нашој конзоли приликом извршавања ове две команде.
Убацили смо свој први запис и успешно га консултовали, чиме смо научили како да користимо базу података Синатра, иако су најпажљивији можда схватили да је све у чему смо радили Руби, и ово је била одлична идеја, показати колико се зна Руби можемо радити са Синатра без много компликација.