Čitatelia ako vy pomáhajú podporovať MUO. Keď uskutočníte nákup pomocou odkazov na našej stránke, môžeme získať pridruženú províziu. Čítaj viac.

Postgres je jednou z populárnych databáz SQL vďaka mnohým funkciám a jednoduchému použitiu. Postgres je kompatibilný s ACID s funkciami, ako je Multi-Version Concurrency Control, asynchrónna replikácia, vnorené transakcie a zapisovanie vopred. Spolu s mnohými ďalšími, tieto funkcie robia z Postgresu go-to SQL databázový systém.

Ekosystém Go je domovom mnohých balíkov na interakciu s rôznymi DBMS vrátane Postgres. Go poskytuje vstavané databáza/sql balík pre prácu s SQL databázami pomocou databázových ovládačov. Pomocou dátových štruktúr Go môžete integrovať obľúbené ORM tretích strán, ako je GORM, pre jednoduchú interakciu s vašou databázou.

Začíname s GORM a Postgres

Balíček GORM je jedným z najpopulárnejších ORM v ekosystéme Go, pretože je priateľský pre vývojárov, má množstvo funkcií a stavia na na databáza/sql balík.

GORM poskytuje funkcie pre automatickú migráciu, protokolovanie, pripravené výpisy, transakcie a sharding. Balík využíva prístup založený na kóde pomocou štruktúr a iných vstavaných dátových typov.

Spustite tento príkaz terminálu vo svojom pracovnom adresári a pridajte balík GORM do závislostí vášho projektu:

ísť získaj gorm.io/gorm\n

Na prácu s balíkom GORM budete potrebovať ovládač databázy. GORM poskytuje databázové ovládače pre populárne DBMS. Spustite tento príkaz vo svojom pracovnom adresári a nainštalujte GORM Postgres vodič:

ísť získaj gorm.io/driver/postgres\n

Prepojenie Postgres s Go pomocou GORM

Importujte tieto balíky do súboru Go, aby ste mohli pracovať s ORM a databázovým ovládačom. Budete používať log balík na zaznamenávanie chýb do vašej konzoly a fmt balík na tlačový výstup.

importovať (\n "fmt"\n "gorm.io/driver/postgres"\n "gorm.io/gorm"\n "log"\n)\n

Na pripojenie k vášmu účtu budete potrebovať reťazec pripojenia Databáza Postgres v bežeckom prostredí. Môžete použiť štruktúru ako model pre polia, ktoré tvoria reťazec pripojenia. Použitie štruktúry uľahčuje zmenu a testovanie rôznych hodnôt, najmä v prípadoch injekcie závislosti.

Tu je príklad modelu štruktúry pre polia, ktoré tvoria reťazec pripojenia:

typu Konfig štrukturovať {\n Hostiteľ reťazec\n Port reťazec\n Heslo reťazec\n Používateľ reťazec\n Názov DB reťazec\n Režim SSL reťazec\n}\n

Nižšie je uvedená typická funkcia pre pripojenie k databáze. V závislosti od stavu pripojenia vráti inštanciu pripojenia a chybu.

funcNové pripojenie()(*gorm. DB, chyba) {\n vrátiť db, nula\n}\n

Môžete vytvoriť inštanciu modelu štruktúry pripojenia a vyplniť polia hodnotami vo vašej databáze Postgres.

 konfigurácie := Konfigurácia{\n Hostiteľ: "databázový_hostiteľ",\n Port: "database_Port",\n Heslo: "heslo_databázy",\n Používateľ: "používateľ_databázy",\n Názov DB: "názov_databázy",\n Režim SSL: "falošný",\n }\n dsn := fmt. Sprintf("hostiteľ=%s port=%s užívateľ=%s heslo=%s názov databázy=%s sslmode=%s", konfigurácie. Hostiteľ, konfigurácie. Port, konfigurácie. Používateľ, konfigurácie. Heslo, konfigurácie. Názov DB, konfigurácie. SSLMode)\n

The dsn premenná používa Sprintf spôsob formátovania a Ísť slovesá na formátovanie reťazcov zreťaziť polia Konfig struct a nastavte reťazec pripojenia Postgres.

Databázové spojenie s GORM môžete otvoriť pomocou OTVORENÉ metóda. The OTVORENÉ metóda preberá otvorené pripojenie z ovládača databázy a zoznam voliteľných konfigurácií z Konfig typ balíka GORM. Vracia inštanciu pripojenia a voliteľnú chybu.

 db, chyba := gorm. Otvorené (postgres. Open (dsn), &gorm. Konfigurácia{})\n ak chyba!= nula {\n vrátiť db, chyba\n }\n

Pingovanie databázy na overenie stavu pripojenia

Môžete testovať svoju databázu pomocou príkazu ping, aby ste si overili stav zdravia/online pomocou funkcie, ktorá vráti boolovský výsledok alebo chybu, ak je pripojenie k databáze neplatné.

funcPingDb()(bool, chyba) {\n \n vrátiťpravda, nula\n}\n

Na ping databázy budete musieť vytvoriť novú inštanciu pripojenia. Tu je príklad použitia Nové pripojenie funkcia na vytvorenie inštancie pripojenia:

 connectionInstance, err := NewConnection()\n ak chyba!= nula {\n prihlásiť sa. Fatalf("Pripojenie k databáze zlyhalo %v", chyba. Chyba())\n }\n

Po získaní inštancie pripojenia vytvorte inštanciu databázy pomocou súboru DB spôsob pripojenia.

 dbConnection, err := connectionInstance. DB()\n ak chyba!= nula {\n vrátiťfalošný, chyba\n } \n

Môžete pingnúť databázu pomocou Ping metóda inštancie databázy. The Ping metóda vracia prípadné chyby resp nula ak bolo pripojenie úspešné.

\n err = dbConnection. Ping()\n ak chyba!= nula {\n vrátiťfalošný, chyba\n } inak {\n \n fmt. Println("Pripojenie bolo úspešné")\n }\n

Výsledkom úspešného spustenia by mal byť výstup podobný tomuto:

Na prácu s databázou SQL v Go môžete použiť balík database/sql

The databáza/sql Balík je rozšíriteľný a keďže väčšina databázových balíkov a ovládačov Go rozširuje balík, môžete tento balík použiť vo svojich projektoch namiesto toho, aby ste sa rozhodli pre ORM.

GORM tiež poskytuje SQL builder na vytváranie surového SQL, čo je užitočné pre nepodporované operácie.