Читаоци попут вас помажу у подршци МУО. Када обавите куповину користећи везе на нашем сајту, можда ћемо зарадити провизију за партнере. Опширније.

Постгрес је једна од популарних СКЛ база података захваљујући бројним функцијама и једноставности коришћења. Постгрес је компатибилан са АЦИД-ом са функцијама као што су контрола конкурентности више верзија, асинхронизована репликација, угнежђене трансакције и евидентирање унапред. Заједно са многим другим, ове карактеристике чине Постгрес основним СКЛ системом за управљање базом података.

Го екосистем је дом многих пакета за интеракцију са различитим ДБМС, укључујући Постгрес. Го пружа уграђени база података/скл пакет за рад са СКЛ базама података помоћу драјвера базе података. Користећи Го структуре података, можете интегрисати популарне ОРМ-ове независних произвођача као што је ГОРМ за лаку интеракцију са вашом базом података.

Почетак рада са ГОРМ-ом и Постгресом

ГОРМ пакет је један од најпопуларнијих ОРМ-ова у Го екосистему јер је погодан за програмере, богат функцијама и надовезује се на тхе база података/скл пакет.

instagram viewer

ГОРМ пружа функционалност за аутоматске миграције, евидентирање, припремљене изјаве, трансакције и дељење. Пакет користи приступ први код користећи структуре и друге уграђене типове података.

Покрените ову терминалну команду у свом радном директоријуму да бисте додали ГОРМ пакет у зависности вашег пројекта:

иди преузми горм.ио/горм\н

Биће вам потребан драјвер базе података да бисте радили са ГОРМ пакетом. ГОРМ обезбеђује драјвере базе података за популарне ДБМС. Покрените ову команду у свом радном директоријуму да бисте инсталирали ГОРМ Постгрес возач:

иди преузми горм.ио/дривер/постгрес\н

Повезивање Постгреса са Го користећи ГОРМ

Увезите ове пакете у своју Го датотеку да бисте радили са ОРМ и драјвером базе података. Користићете Пријава пакет за евидентирање грешака на вашој конзоли и фмт пакет за штампање излаза.

увоз (\н "фмт""горм.ио/дривер/постгрес""горм.ио/горм""Пријава"\н)\н

Биће вам потребан низ везе да бисте се повезали са вашим Постгрес база података у окружењу за трчање. Можете користити структуру као модел за поља која чине низ везе. Коришћење структуре олакшава промену и тестирање различитих вредности, посебно у случајевима ињекције зависности.

Ево примера модела структуре за поља која чине низ везе:

тип Цонфиг струцт {\н Домаћин низ\н Порт низ\н Лозинка низ\н Корисник низ\н ДБНаме низ\н ССЛМоде низ\н}\н

Испод је типична функција за вашу везу са базом података. Враћа инстанцу везе и грешку у зависности од статуса везе.

фунцНевЦоннецтион()(*горм. ДБ, грешка) {\н повратак дб, нула\н}\н

Можете инстанцирати модел структуре везе и попунити поља вредностима у вашој Постгрес бази података.

 конфигурације := Цонфиг{\н Хост: "датабасе_Хост",\н Порт: "порт_базе података",\н Лозинка: "база_лозинки",\н Корисник: "датабасе_Усер",\н ДБНаме: "Назив базе података",\н ССЛМоде: "лажно",\н }\н дсн := фмт. Спринтф("хост=%с порт=%с корисник=%с лозинка=%с дбнаме=%с сслмоде=%с", конфигурације. Хост, конфигурације. Порт, конфигурације. Корисник, конфигурације. Лозинка, конфигурације. ДБНаме, конфигурације. ССЛМоде)\н

Тхе дсн променљива користи Спринтф начин форматирања и Иди глаголи обликовања стрингова да споји поља Цонфиг струцт и подесите Постгрес конекцију.

Можете отворити везу са базом података са ГОРМ-ом користећи Отвори методом. Тхе Отвори метода преузима отворену везу из драјвера базе података и листу опционих конфигурација из Цонфиг тип ГОРМ пакета. Враћа инстанцу везе и опциону грешку.

 дб, ерр := горм. Отворено (постгрес. Отвори (дсн), &горм. Конфигурација{})\н ако ерр != нула {\н повратак дб, грешка\н }\н

Пинговање базе података ради провере статуса везе

Можете пинговати своју базу података да бисте проверили статус здравља/онлине помоћу функције која враћа логички резултат или грешку ако је веза базе података неважећа.

фунцПингДб()(боол, грешка) {\н \н повратакистина, нула\н}\н

Мораћете да креирате нову инстанцу везе да бисте пинговали базу података. Ево примера коришћења НевЦоннецтион функција за креирање инстанце везе:

 цоннецтионИнстанце, ерр := НевЦоннецтион()\н ако ерр != нула {\н дневник. Фаталф(„Повезивање базе података није успело %в“, ерр. Грешка())\н }\н

Када добијете инстанцу везе, креирајте инстанцу базе података са ДБ начин повезивања.

 дбЦоннецтион, ерр := цоннецтионИнстанце. ДБ()\н ако ерр != нула {\н повратаклажно, ерр\н } \н

Можете пинговати базу података помоћу Пинг метод инстанце базе података. Тхе Пинг метода враћа све грешке или нула ако је веза била успешна.

\н ерр = дбЦоннецтион. Пинг()\н ако ерр != нула {\н повратаклажно, грешка\н } друго {\н \н фмт. Принтлн(„Веза је успела“)\н }\н

Успешно покретање би требало да резултира сличним излазом:

Можете да користите пакет базе података/скл за рад са СКЛ базом података у Го

Тхе база података/скл пакет је проширив, а пошто већина пакета Го базе података и драјвера проширују пакет, можете користити пакет у својим пројектима уместо да се одлучите за ОРМ-ове.

ГОРМ такође обезбеђује СКЛ буилдер за прављење сировог СКЛ-а, који је од помоћи за неподржане операције.