Kaltaisesi lukijat auttavat tukemaan MUO: ta. Kun teet ostoksen käyttämällä sivustollamme olevia linkkejä, voimme ansaita kumppanipalkkion. Lue lisää.

Postgres on yksi suosituimmista SQL-tietokannoista monien ominaisuuksiensa ja helppokäyttöisyytensä ansiosta. Postgres on ACID-yhteensopiva, ja siinä on ominaisuuksia, kuten Multi-Version Concurrency Control, async replikointi, sisäkkäiset tapahtumat ja kirjoitus eteenpäin. Monien muiden ohella nämä ominaisuudet tekevät Postgresista SQL-tietokannan hallintajärjestelmän.

Go-ekosysteemissä on monia paketteja vuorovaikutukseen erilaisten DBMS-järjestelmien kanssa, mukaan lukien Postgres. Go tarjoaa sisäänrakennetun tietokanta/sql paketti SQL-tietokantojen työskentelyyn tietokanta-ajureilla. Go-tietorakenteiden avulla voit integroida suosittuja kolmannen osapuolen ORM-järjestelmiä, kuten GORM, helpottaaksesi vuorovaikutusta tietokantasi kanssa.

GORMin ja Postgresin käytön aloittaminen

GORM-paketti on yksi Go-ekosysteemin suosituimmista ORM-järjestelmistä, koska se on kehittäjäystävällinen, monipuolinen ja perustuu the tietokanta/sql paketti.

instagram viewer

GORM tarjoaa toimintoja automaattiseen siirtoon, lokiin, valmisteltuihin lausuntoihin, tapahtumiin ja jakamiseen. Paketti käyttää koodien ensisijaista lähestymistapaa käyttämällä rakenteita ja muita sisäänrakennettuja tietotyyppejä.

Suorita tämä päätekomento työhakemistossasi lisätäksesi GORM-paketin projektisi riippuvuuksiin:

mennä hanki gorm.io/gorm\n

Tarvitset tietokantaohjaimen toimiaksesi GORM-paketin kanssa. GORM tarjoaa tietokantaohjaimia suosittuihin tietokantajärjestelmiin. Asenna GORM suorittamalla tämä komento työhakemistossasi Postgres kuljettaja:

mennä hanki gorm.io/driver/postgres\n

Postgresin yhdistäminen Goin käyttämällä GORMia

Tuo nämä paketit Go-tiedostoosi toimiaksesi ORM: n ja tietokantaohjaimen kanssa. Tulet käyttämään Hirsi paketti kirjaamaan virheet konsoliisi ja fmt paketti tulostettavaksi.

tuonti (\n "fmt"\n "gorm.io/driver/postgres"\n "gorm.io/gorm"\n "Hirsi"\n)\n

Tarvitset yhteysmerkkijonon muodostaaksesi yhteyden Postgres-tietokanta juoksuympäristössä. Voit käyttää rakennetta mallina kentille, jotka muodostavat yhteysmerkkijonon. Rakenteen käyttäminen helpottaa eri arvojen muuttamista ja testaamista, erityisesti riippuvuusinjektiotapauksissa.

Tässä on esimerkkirakennemalli kentille, jotka muodostavat yhteysmerkkijonon:

tyyppi Konfig struct {\n Isäntä merkkijono\n Portti merkkijono\n Salasana merkkijono\n Käyttäjä merkkijono\n DBName merkkijono\n SSLMode merkkijono\n}\n

Alla on tyypillinen toiminto tietokantayhteydellesi. Se palauttaa yhteysesiintymän ja virheilmoituksen yhteyden tilasta riippuen.

funcUusi yhteys()(*gorm. DB, virhe) {\n palata db, nolla\n}\n

Voit luoda yhteysrakennemallin ja täyttää kentät Postgres-tietokannan arvoilla.

 kokoonpanot := Asetukset{\n Isäntä: "tietokanta_isäntä",\n Portti: "tietokanta_portti",\n Salasana: "tietokanta_salasana",\n Käyttäjä: "tietokanta_käyttäjä",\n DBName: "tietokannan nimi",\n SSLM-tila: "väärä",\n }\n dsn := fmt. Sprintf("isäntä=%s portti=%s käyttäjä=%s salasana=%s dbname=%s sslmode=%s", kokoonpanot. Isäntä, kokoonpanot. Portti, kokoonpanot. Käyttäjä, kokoonpanot. Salasana, asetukset. DBName, kokoonpanot. SSLMode)\n

The dsn muuttuja käyttää Sprintf muotoilumenetelmä ja Siirry merkkijonomuotoilun verbeille ketjuttaaksesi kentät Konfig struct ja määritä Postgres-yhteysmerkkijono.

Voit avata tietokantayhteyden GORM: n kanssa käyttämällä Avata menetelmä. The Avata menetelmä ottaa avoimen yhteyden tietokantaohjaimesta ja luettelon valinnaisista kokoonpanoista Konfig GORM-paketin tyyppi. Se palauttaa yhteysesiintymän ja valinnaisen virheilmoituksen.

 db, err := gorm. Avaa (postgres. Avaa (dsn), &gorm. Config{})\n jos virhe! = nolla {\n palata db, err\n }\n

Pingaus tietokannasta yhteyden tilan tarkistamiseksi

Voit tarkistaa tietokannan ping-kunnon/online-tilan funktiolla, joka palauttaa loogisen tuloksen tai virheilmoituksen, jos tietokantayhteys on virheellinen.

funcPingDb()(bool, virhe) {\n \n palatatotta, nolla\n}\n

Sinun on luotava uusi yhteysesiintymä, jotta voit pingata tietokannan. Tässä on esimerkki, jossa käytetään Uusi yhteys toiminto yhteysesiintymän luomiseksi:

 connectionInstance, err := NewConnection()\n jos virhe! = nolla {\n loki. Fatalf("Tietokantayhteys epäonnistui %v", err. Virhe())\n }\n

Kun olet hankkinut yhteysesiintymän, luo tietokantaesiintymä DB yhteyden menetelmä.

 dbConnection, err := connectionInstance. DB()\n jos virhe! = nolla {\n palataväärä, err\n } \n

Voit pingata tietokantaan Ping tietokannan ilmentymän menetelmä. The Ping menetelmä palauttaa kaikki virheet tai nolla jos yhteys onnistui.

\n err = dbConnection. Ping()\n jos virhe! = nolla {\n palataväärä, virhe\n } muu {\n \n fmt. Println("Yhteys onnistui")\n }\n

Onnistuneen ajon tuloksena pitäisi olla seuraavanlainen tulos:

Voit käyttää tietokanta/sql-pakettia SQL-tietokannan kanssa työskentelemiseen Gossa

The tietokanta/sql Paketti on laajennettavissa, ja koska useimmat Go-tietokantapaketit ja ajurit laajentavat pakettia, voit käyttää pakettia projekteissasi ORM: iden valitsemisen sijaan.

GORM tarjoaa myös SQL-rakennustyökalun raaka-SQL: n rakentamiseen, mikä on hyödyllistä ei-tuetuissa toimissa.