Postgres je ena izmed priljubljenih baz podatkov SQL zaradi svojih številnih funkcij in enostavne uporabe. Postgres je združljiv s standardom ACID s funkcijami, kot so nadzor sočasnosti več različic, asinhrono podvajanje, ugnezdene transakcije in beleženje vnaprejšnjega pisanja. Skupaj s številnimi drugimi je zaradi teh funkcij Postgres sistem za upravljanje baze podatkov SQL.
Ekosistem Go je dom številnih paketov za interakcijo z različnimi DBMS, vključno s Postgres. Go ponuja vgrajeno baza podatkov/sql paket za delo z bazami podatkov SQL z uporabo gonilnikov baz podatkov. Z uporabo podatkovnih struktur Go lahko integrirate priljubljene ORM-je tretjih oseb, kot je GORM, za enostavno interakcijo z vašo bazo podatkov.
Kako začeti z GORM in Postgres
Paket GORM je eden najbolj priljubljenih ORM-jev v ekosistemu Go, ker je razvijalcem prijazen, bogat s funkcijami in temelji na the baza podatkov/sql paket.
GORM zagotavlja funkcionalnost za samodejne migracije, beleženje, pripravljene izjave, transakcije in razčlenjevanje. Paket ima pristop najprej kode z uporabo struktur in drugih vgrajenih tipov podatkov.
Zaženite ta terminalski ukaz v svojem delovnem imeniku, da dodate paket GORM v odvisnosti vašega projekta:
pojdi pridobi gorm.io/gorm\n
Za delovanje paketa GORM boste potrebovali gonilnik baze podatkov. GORM nudi gonilnike baze podatkov za priljubljene DBMS. Zaženite ta ukaz v svojem delovnem imeniku, da namestite GORM Postgres voznik:
pojdi pridobi gorm.io/driver/postgres\n
Povezovanje Postgresa z Go z uporabo GORM
Uvozite te pakete v datoteko Go za delo z ORM in gonilnikom baze podatkov. Uporabili boste dnevnik paket za beleženje napak v vašo konzolo in fmt paket za tiskanje.
uvoz (\n "fmt"\n "gorm.io/driver/postgres"\n "gorm.io/gorm"\n "dnevnik"\n)\n
Potrebovali boste povezovalni niz za povezavo z vašim Baza podatkov Postgres v tekaškem okolju. Strukturo lahko uporabite kot model za polja, ki sestavljajo povezovalni niz. Uporaba strukture olajša spreminjanje in testiranje različnih vrednosti, zlasti v primerih vbrizgavanja odvisnosti.
Tukaj je primer modela strukture za polja, ki sestavljajo povezovalni niz:
vrsta Config struct {\n Gostitelj vrvica\n Vrata vrvica\n Geslo vrvica\n Uporabnik vrvica\n DBName vrvica\n SSLMode vrvica\n}\n
Spodaj je tipična funkcija za vašo povezavo z bazo podatkov. Vrne primerek povezave in napako, odvisno od stanja povezave.
funkNova povezava()(*gorm. DB, napaka) {\n vrnitev db, nič\n}\n
Ustvarite lahko model strukture povezave in izpolnite polja z vrednostmi v vaši zbirki podatkov Postgres.
konfiguracije := Konfiguracija{\n Gostitelj: "database_Host",\n Vrata: "vrata_baze podatkov",\n Geslo: "geslo_baze podatkov",\n Uporabnik: "database_User",\n DBName: "ime_baze_podatkov",\n Način SSL: "false",\n }\n dsn := fmt. Sprintf("gostitelj=%s vrata=%s uporabnik=%s geslo=%s dbname=%s sslmode=%s", konfiguracije. Gostitelj, konfiguracije. Vrata, konfiguracije. Uporabnik, konfiguracije. Geslo, konfiguracije. DBName, konfiguracije. SSLMode)\n
The dsn spremenljivka uporablja Sprintf način oblikovanja in Glagoli za oblikovanje nizov za združevanje polj Config struct in nastavite povezovalni niz Postgres.
Povezavo z bazo podatkov z GORM lahko odprete z uporabo Odprto metoda. The Odprto metoda vzame odprto povezavo iz gonilnika baze podatkov in seznam izbirnih konfiguracij iz Config vrsto paketa GORM. Vrne primerek povezave in neobvezno napako.
db, napaka := gorm. Odpri (postgres. Odpri (dsn), &gorm. Konfiguracija{})\n če napaka!= nič {\n vrnitev db, napaka\n }\n
Pinganje baze podatkov za preverjanje statusa povezave
Svojo bazo podatkov lahko pingate, da preverite stanje zdravja/spleta s funkcijo, ki vrne logični rezultat ali napako, če je povezava z bazo podatkov neveljavna.
funkPingDB()(bool, napaka) {\n \n vrnitevprav, nič\n}\n
Za pinganje baze podatkov boste morali ustvariti nov primerek povezave. Tukaj je primer uporabe Nova povezava funkcija za ustvarjanje primerka povezave:
ConnectionInstance, err := NewConnection()\n če napaka!= nič {\n dnevnik. Fatalf ("Povezava z bazo podatkov ni uspela %v", napaka Napaka())\n }\n
Ko pridobite primerek povezave, ustvarite primerek baze podatkov z DB način povezave.
dbConnection, err := primerek povezave. DB()\n če napaka!= nič {\n vrnitevlažno, napaka\n } \n
Bazo podatkov lahko pingate z Ping metoda primerka baze podatkov. The Ping metoda vrne morebitne napake oz nič če je bila povezava uspešna.
\n napaka = dbConnection. Ping()\n če napaka!= nič {\n vrnitevlažno, napaka\n } drugače {\n \n fmt. Println("Povezava je bila uspešna")\n }\n
Rezultat uspešnega izvajanja bi moral biti podoben temu:
Za delo z bazo podatkov SQL v Go lahko uporabite paket baze podatkov/sql
The baza podatkov/sql paket je razširljiv in ker večina paketov baze podatkov Go in gonilnikov razširi paket, lahko uporabite paket v svojih projektih, namesto da bi se odločili za ORM.
GORM ponuja tudi graditelj SQL za gradnjo surovega SQL, ki je v pomoč pri nepodprtih operacijah.