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 iepriekšējas 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 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.

instagram viewer

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:

aiziet iegūstiet 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:

aiziet iegūstiet 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.

imports (\n "fmt"\n "gorm.io/driver/postgres"\n "gorm.io/gorm"\n "baļķis"\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:

veids Konfig struktūra {\n Saimniekdators virkne\n Ports virkne\n Parole virkne\n Lietotājs virkne\n DBName virkne\n SSLM režīms virkne\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.

funcJauns savienojums()(*gorm. DB, kļūda) {\n atgriezties db, nulle\n}\n

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

 konfigurācijas := Config{\n Host: "datubāze_Host",\n Ports: "datubase_Port",\n Parole: "datubāze_Parole",\n Lietotājs: "datubāze_lietotājs",\n DBName: "datubāzes_nosaukums",\n SSLMrežīms: "nepatiess",\n }\n dsn := fmt. Sprintf("host=%s ports=%s lietotājs=%s parole=%s dbname=%s sslmode=%s", konfigurācijas. Saimniekdators, konfigurācijas. Ports, konfigurācijas. Lietotājs, konfigurācijas. Parole, konfigurācijas. DBName, konfigurācijas. 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. Atvērt (postgres. Atvērt (dsn), &gorm. Config{})\n ja kļūda! = nulle {\n atgriezties db, kļūda\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 ir nederīgs.

funcPingDb()(bool, kļūda) {\n \n atgrieztiestaisnība, nulle\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:

 connectInstance, err := NewConnection()\n ja kļūda! = nulle {\n žurnāls. Fatalf("Neizdevās izveidot savienojumu ar datubāzi %v", kļūda. Kļūda())\n }\n

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

 dbConnection, err := connectionInstance. DB()\n ja kļūda! = nulle {\n atgrieztiesviltus, 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 kļūda = dbSavienojums. Ping()\n ja kļūda! = nulle {\n atgrieztiesviltus, kļūda\n } cits {\n \n fmt. Println("Savienojums bija veiksmīgs")\n }\n

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

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.