Izveidojiet savienojumu ar Postgres datu bāzi savā Go lietojumprogrammā, izmantojot GORM

Izveidojiet savienojumu ar Postgres datu bāzi savā Go lietojumprogrammā, izmantojot GORM
Tādi lasītāji kā jūs palīdz atbalstīt MUO. Veicot pirkumu, izmantojot saites mūsu vietnē, mēs varam nopelnīt filiāles komisiju. Lasīt vairāk.

Postgres ir viena no populārākajām SQL datu bāzēm, pateicoties tās daudzajām funkcijām un lietošanas vienkāršībai. Postgres ir saderīgs ar ACID ar tādiem līdzekļiem kā vairāku versiju vienlaicīguma kontrole, asinhronā replikācija, ligzdotas transakcijas un priekšrakstīšanas reģistrēšana. Līdztekus daudziem citiem, šīs funkcijas padara Postgres par SQL datu bāzes pārvaldības sistēmu.





Go ekosistēmā ir daudz pakotņu mijiedarbībai ar dažādām DBVS, tostarp Postgres. Go nodrošina iebūvēto datu bāze/sql pakotne darbam ar SQL datu bāzēm, izmantojot datu bāzes draiverus. Izmantojot Go datu struktūras, varat integrēt populārus trešo pušu ORM, piemēram, GORM, lai ērti mijiedarbotos ar savu datu bāzi.





Darba sākšana ar GORM un Postgres

  GORM mājaslapā

GORM pakotne ir viens no populārākajiem ORM Go ekosistēmā, jo tas ir izstrādātājiem draudzīgs, ar funkcijām bagāts un balstās uz uz datu bāze/sql iepakojums .





GORM nodrošina funkcionalitāti automātiskai migrācijai, reģistrēšanai, sagatavotiem paziņojumiem, darījumiem un sadalīšanai. Pakotnē tiek izmantota pirmā koda pieeja, izmantojot struktūras un citus iebūvētos datu tipus.

Palaidiet šo termināļa komandu savā darba direktorijā, lai pievienotu GORM pakotni sava projekta atkarībām:



 go get gorm.io/gorm\n

Lai strādātu ar GORM pakotni, jums būs nepieciešams datu bāzes draiveris. GORM nodrošina datu bāzes draiverus populārām DBVS. Palaidiet šo komandu savā darba direktorijā, lai instalētu GORM Postgres vadītājs:

prāta spēles, ko spēlēt kopā ar draugu
 go get gorm.io/driver/postgres\n

Postgres savienošana ar Go, izmantojot GORM

Importējiet šīs pakotnes savā Go failā, lai strādātu ar ORM un datu bāzes draiveri. Jūs izmantosit žurnāls pakotni, lai reģistrētu kļūdas savā konsolē un fmt iepakojums izdrukai.





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

Lai izveidotu savienojumu ar savu, jums būs nepieciešama savienojuma virkne Postgres datu bāze skriešanas vidē. Varat izmantot struktūru kā modeli laukiem, kas veido savienojuma virkni. Izmantojot struktūru, ir vieglāk mainīt un pārbaudīt dažādas vērtības, īpaši atkarības injekcijas gadījumos.

Tālāk ir sniegts struktūras modeļa piemērs laukiem, kas veido savienojuma virkni:





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

Tālāk ir norādīta tipiska jūsu datu bāzes savienojuma funkcija. Tas atgriež savienojuma gadījumu un kļūdu atkarībā no savienojuma statusa.

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

Varat izveidot savienojuma struktūras modeli un aizpildīt laukus ar vērtībām savā Postgres datubāzē.

     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 mainīgais izmanto Sprintf formatēšanas metode un Iet virknes formatēšanas darbības vārdus lai savienotu laukus Konfig struct un iestatiet Postgres savienojuma virkni.

Varat atvērt datu bāzes savienojumu ar GORM, izmantojot Atvērt metodi. The Atvērt metode izmanto atvērtu savienojumu no datu bāzes draivera un izvēles konfigurāciju sarakstu no Konfig GORM pakotnes veids. Tas atgriež savienojuma gadījumu un neobligātu kļūdu.

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

Nosūtiet datu bāzi, lai pārbaudītu savienojuma statusu

Varat pārbaudīt datubāzi, lai pārbaudītu veselības/tiešsaistes statusu, izmantojot funkciju, kas atgriež Būla rezultātu vai kļūdu, ja datu bāzes savienojums nav derīgs.

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

Lai veiktu datu bāzes ping, jums būs jāizveido jauns savienojuma gadījums. Šeit ir piemērs, izmantojot Jauns savienojums funkcija, lai izveidotu savienojuma gadījumu:

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

Kad esat ieguvis savienojuma gadījumu, izveidojiet datu bāzes gadījumu ar DB savienojuma metode.

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

Jūs varat ping datubāzei ar Ping datu bāzes instances metode. The Ping metode atgriež visas kļūdas vai nulle ja savienojums bija veiksmīgs.

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

Veiksmīgai palaišanai vajadzētu iegūt līdzīgu rezultātu:

kā samazināt fotoattēla faila lielumu
  veiksmīga savienojuma izvade

Varat izmantot datu bāzes/sql pakotni, lai strādātu ar SQL datu bāzi programmā Go

The datu bāze/sql pakotne ir paplašināma, un, tā kā lielākā daļa Go datu bāzes pakotņu un draiveru paplašina pakotni, varat izmantot pakotni savos projektos, nevis izvēlēties ORM.

GORM nodrošina arī SQL veidotāju neapstrādāta SQL veidošanai, kas ir noderīgs neatbalstītām darbībām.