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.
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.