Opret forbindelse til en Postgres-database i din Go-applikation med GORM

Opret forbindelse til en Postgres-database i din Go-applikation med GORM
Læsere som dig hjælper med at støtte MUO. Når du foretager et køb ved hjælp af links på vores websted, kan vi optjene en affiliate-kommission. Læs mere.

Postgres er en af ​​de populære SQL-databaser på grund af dens mange funktioner og brugervenlighed. Postgres er ACID-kompatibel med funktioner som Multi-Version Concurrency Control, asynkron replikering, indlejrede transaktioner og fremskrivningslogning. Sammen med mange andre gør disse funktioner Postgres til det bedste SQL-databasestyringssystem.





Go-økosystemet er hjemsted for mange pakker til interaktion med forskellige DBMS, inklusive Postgres. Go giver det indbyggede database/sql pakke til at arbejde med SQL-databaser ved hjælp af databasedrivere. Ved at bruge Go-datastrukturer kan du integrere populære tredjeparts ORM'er som GORM for nem interaktion med din database.





Kom godt i gang med GORM og Postgres

  GORMs hjemmeside

GORM-pakken er en af ​​de mest populære ORM'er i Go-økosystemet, fordi den er udviklervenlig, funktionsrig og bygger på det database/sql pakke .





ukendt usb -enhed (enhedsbeskrivelsesanmodning mislykkedes) Windows 10

GORM leverer funktionalitet til automatiske migreringer, logning, forberedte erklæringer, transaktioner og sharding. Pakken tager den kode-første tilgang ved hjælp af strukturer og andre indbyggede datatyper.

Kør denne terminalkommando i dit arbejdsbibliotek for at tilføje GORM-pakken til dit projekts afhængigheder:



 go get gorm.io/gorm\n

Du skal bruge en databasedriver for at arbejde med GORM-pakken. GORM leverer databasedrivere til populære DBMS. Kør denne kommando i din arbejdsmappe for at installere GORM Postgres chauffør:

 go get gorm.io/driver/postgres\n

Tilslutning af Postgres med Go ved hjælp af GORM

Importer disse pakker i din Go-fil for at arbejde med ORM- og databasedriveren. Du vil bruge log pakke til at logge fejl til din konsol og fmt pakke til udskrift.





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

Du skal bruge en forbindelsesstreng for at oprette forbindelse til din Postgres database i løbemiljøet. Du kan bruge en struct som model for de felter, der udgør forbindelsesstrengen. Brug af en struct gør det lettere at ændre og teste forskellige værdier, især i tilfælde af afhængighedsinjektion.

Her er et eksempel på en strukturmodel for de felter, der udgør forbindelsesstrengen:





windows 10 boot loop efter nulstilling
 type Config struct {\n Host string\n Port string\n Password string\n User string\n DBName string\n SSLMode string\n}\n

Nedenfor er en typisk funktion for din databaseforbindelse. Det returnerer forbindelsesforekomsten og en fejl afhængigt af forbindelsesstatus.

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

Du kan instansiere forbindelsesstrukturmodellen og udfylde felterne med værdierne i din Postgres-database.

     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

Det dsn variabel bruger Sprintf formateringsmetode og Gå til strengformatering af verber at sammenkæde felterne af Konfig struct og opsæt Postgres-forbindelsesstrengen.

Du kan åbne en databaseforbindelse med GORM ved hjælp af Åben metode. Det Åben metoden tager en åben forbindelse fra en databasedriver og en liste over valgfrie konfigurationer fra Konfig type af GORM-pakken. Det returnerer en forbindelsesforekomst og en valgfri fejl.

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

Pinger databasen for at bekræfte forbindelsesstatus

Du kan pinge din database for at bekræfte sundheds-/onlinestatus med en funktion, der returnerer et boolesk resultat eller en fejl, hvis databaseforbindelsen er ugyldig.

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

Du skal oprette en ny forbindelsesinstans for at pinge databasen. Her er et eksempel ved hjælp af Ny forbindelse funktion til at oprette en forbindelsesforekomst:

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

Når du har fået en forbindelsesforekomst, skal du oprette en databaseforekomst med DB metoden til forbindelsen.

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

Du kan pinge databasen med Ping metoden for databaseinstansen. Det Ping metode returnerer eventuelle fejl eller nul hvis forbindelsen lykkedes.

kan du få abc nbc og cbs på roku?
 \n err = dbConnection.Ping()\n if err != nil {\n return false, err\n } else {\n \n fmt.Println("The connection was successful")\n }\n

En vellykket kørsel bør resultere i output svarende til dette:

  vellykket forbindelsesudgang

Du kan bruge databasen/sql-pakken til at arbejde med SQL-databasen i Go

Det database/sql pakken kan udvides, og da de fleste Go-databasepakker og -drivere udvider pakken, kan du bruge pakken i dine projekter i stedet for at vælge ORM'er.

GORM leverer også en SQL-builder til at bygge rå SQL, hvilket er nyttigt til ikke-understøttede operationer.