Ühendage GORM-i abil oma Go rakenduses Postgresi andmebaasiga

Ühendage GORM-i abil oma Go rakenduses Postgresi andmebaasiga
Teiesugused lugejad aitavad MUO-d toetada. Kui teete ostu meie saidil olevate linkide abil, võime teenida sidusettevõtte komisjonitasu. Loe rohkem.

Postgres on oma paljude funktsioonide ja kasutuslihtsuse tõttu üks populaarsemaid SQL-andmebaase. Postgres on ACID-ühilduv selliste funktsioonidega nagu mitme versiooni samaaegsuse kontroll, asünkrooniline replikatsioon, pesastatud tehingud ja ettekirjutamise logimine. Koos paljude teiste funktsioonidega muudavad need Postgres SQL-i andmebaasihaldussüsteemiks.





Go ökosüsteem on koduks paljudele pakettidele, mis võimaldavad suhelda erinevate DBMS-idega, sealhulgas Postgresiga. Go pakub sisseehitatud andmebaas/sql pakett SQL-andmebaasidega töötamiseks, kasutades andmebaasi draivereid. Go andmestruktuure kasutades saate oma andmebaasiga hõlpsaks suhtlemiseks integreerida populaarseid kolmanda osapoole ORM-e, nagu GORM.





Windows 7 näeb välja nagu xp

GORMi ja Postgresiga alustamine

  GORM-i koduleht

GORM pakett on Go ökosüsteemis üks populaarsemaid ORM-e, kuna see on arendajasõbralik, funktsioonirikas ja tugineb a andmebaas/sql pakett .





GORM pakub funktsioone automaatseks migratsiooniks, logimiseks, koostatud väljavõteteks, tehinguteks ja jagamiseks. Pakett kasutab kood-first lähenemisviisi, kasutades struktuure ja muid sisseehitatud andmetüüpe.

Käivitage see terminalikäsk oma töökataloogis, et lisada GORM-i pakett oma projekti sõltuvustele:



 go get gorm.io/gorm\n

GORM-i paketi töötamiseks vajate andmebaasi draiverit. GORM pakub populaarsete DBMS-ide jaoks andmebaasi draivereid. GORM-i installimiseks käivitage see käsk oma töökataloogis Postgres juht:

 go get gorm.io/driver/postgres\n

Postgresi ühendamine Go-ga, kasutades GORM-i

Importige need paketid oma Go-faili, et töötada ORM-i ja andmebaasi draiveriga. Sa kasutad logi pakett vigade logimiseks oma konsooli ja fmt pakett printimiseks.





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

Teiega ühenduse loomiseks vajate ühendusstringi Postgresi andmebaas jooksukeskkonnas. Ühendusstringi moodustavate väljade mudelina saate kasutada struktuuri. Struktuuri kasutamine muudab erinevate väärtuste muutmise ja testimise lihtsamaks, eriti sõltuvuse süstimise korral.

Siin on ühendusstringi moodustavate väljade struktuurimudeli näide:





 type Config struct {\n Host string\n Port string\n Password string\n User string\n DBName string\n SSLMode string\n}\n

Allpool on teie andmebaasiühenduse tüüpiline funktsioon. See tagastab ühenduse eksemplari ja veateate sõltuvalt ühenduse olekust.

 func NewConnection() (*gorm.DB, error) {\n return db, nil\n}\n

Saate luua ühenduse struktuuri mudeli ja täita väljad väärtustega oma Postgresi andmebaasis.

     configurations := Config{\n Host: "database_Host",\n Port: "database_Port",\n Password: "database_Password",\n User: "database_User",\n DBName: "database_Name",\n SSLMode: "false",\n }\n dsn := fmt.Sprintf("host=%s port=%s user=%s password=%s dbname=%s sslmode=%s", configurations.Host, configurations.Port, configurations.User, configurations.Password, configurations.DBName, configurations.SSLMode)\n

The dsn muutuja kasutab Sprintf vormindamise meetod ja Mine stringi vormindamise tegusõnad väljade ühendamiseks Konfig struct ja seadistage Postgresi ühendusstring.

Saate avada andmebaasiühenduse GORM-iga, kasutades Avatud meetod. The Avatud meetod võtab avatud ühenduse andmebaasi draiverist ja valikuliste konfiguratsioonide loendi Konfig GORM-i paketi tüüp. See tagastab ühenduse eksemplari ja valikulise vea.

     db, err := gorm.Open(postgres.Open(dsn), &gorm.Config{})\n if err != nil {\n return db, err\n }\n

Andmebaasi pingimine ühenduse oleku kontrollimiseks

Saate oma andmebaasi pingida, et kontrollida tervise-/võrguolekut funktsiooniga, mis tagastab tõeväärtusliku tulemuse või vea, kui andmebaasiühendus on kehtetu.

 func PingDb() (bool, error) {\n \n return true, nil\n}\n

Andmebaasi pingimiseks peate looma uue ühenduse eksemplari. Siin on näide selle kasutamisest Uus ühendus funktsioon ühenduse eksemplari loomiseks:

     connectionInstance, err := NewConnection()\n if err != nil {\n log.Fatalf("The database connection failed %v", err.Error())\n }\n

Kui olete ühenduse eksemplari hankinud, looge andmebaasi eksemplar rakendusega DB ühendamise meetod.

     dbConnection, err := connectionInstance.DB()\n if err != nil {\n return false, err\n } \n

Saate andmebaasi pingida rakendusega Ping andmebaasi eksemplari meetod. The Ping meetod tagastab kõik vead või null kui ühendus õnnestus.

 \n err = dbConnection.Ping()\n if err != nil {\n return false, err\n } else {\n \n fmt.Println("The connection was successful")\n }\n

Eduka käitamise tulemuseks peaks olema järgmine väljund:

  eduka ühenduse väljund

Saate kasutada andmebaasi / SQL-i paketti SQL-i andmebaasiga töötamiseks Go-s

The andmebaas/sql pakett on laiendatav ja kuna enamik Go andmebaasipakette ja draivereid laiendavad paketti, saate paketti oma projektides kasutada, selle asemel et valida ORM-id.

GORM pakub ka töötlemata SQL-i loomiseks SQL-i koostajat, mis on abiks toetamata toimingute puhul.