התחבר למסד נתונים של Postgres באפליקציית ה-Go שלך עם GORM

התחבר למסד נתונים של Postgres באפליקציית ה-Go שלך עם GORM
קוראים כמוך עוזרים לתמוך ב-MUO. כאשר אתה מבצע רכישה באמצעות קישורים באתר שלנו, אנו עשויים להרוויח עמלת שותף. קרא עוד.

Postgres הוא אחד ממסדי הנתונים הפופולריים של SQL בשל תכונותיו הרבות וקלות השימוש. Postgres תואם ל-ACID עם תכונות כמו בקרת מקביליות מרובת גרסאות, שכפול אסינכרון, עסקאות מקוננות ורישום כתיבה קדימה. יחד עם רבות אחרות, תכונות אלה הופכות את Postgres למערכת ניהול מסדי הנתונים של SQL.





המערכת האקולוגית של Go היא ביתם של חבילות רבות לאינטראקציה עם DBMS שונים, כולל Postgres. Go מספקת את המובנה מסד נתונים/sql חבילה לעבודה עם מסדי נתונים של SQL באמצעות מנהלי התקנים של מסד נתונים. באמצעות מבני נתונים של Go, אתה יכול לשלב ORMs פופולריים של צד שלישי כמו GORM לאינטראקציה קלה עם מסד הנתונים שלך.





תחילת העבודה עם GORM ו-Postgres

  דף הבית של GORM

חבילת GORM הוא אחד ה-ORMs הפופולריים ביותר במערכת האקולוגית של Go מכיוון שהוא ידידותי למפתחים, עשיר בתכונות ומתבסס על ה מסד נתונים/sql חֲבִילָה .





GORM מספק פונקציונליות עבור העברות אוטומטיות, רישום, הצהרות מוכנות, עסקאות ופיצול. החבילה נוקטת בגישה של קוד ראשון תוך שימוש במבנים וסוגי נתונים מובנים אחרים.

הפעל את פקודת הטרמינל הזו בספריית העבודה שלך כדי להוסיף את חבילת GORM לתלות של הפרויקט שלך:



 go get gorm.io/gorm\n

תזדקק לדרייבר של מסד נתונים כדי לעבוד עם חבילת GORM. GORM מספק מנהלי התקנים של מסד נתונים עבור DBMS פופולרי. הפעל פקודה זו בספריית העבודה שלך כדי להתקין את ה-GORM Postgres נהג:

 go get gorm.io/driver/postgres\n

חיבור Postgres עם Go באמצעות GORM

ייבא את החבילות האלה לקובץ ה-Go שלך כדי לעבוד עם ה-ORM ומנהל ההתקן של מסד הנתונים. אתה תשתמש ב- עֵץ חבילה לרישום שגיאות למסוף שלך ול- fmt חבילה להדפסת פלט.





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

תזדקק למחרוזת חיבור כדי להתחבר לשלך מסד נתונים Postgres בסביבת הריצה. אתה יכול להשתמש ב-struct כמודל לשדות המרכיבים את מחרוזת החיבור. שימוש ב-struct מקל על שינוי ובדיקת ערכים שונים, במיוחד במקרים של הזרקת תלות.

להלן מודל מבנה לדוגמה עבור השדות המרכיבים את מחרוזת החיבור:





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

להלן פונקציה אופיינית לחיבור מסד הנתונים שלך. זה מחזיר את מופע החיבור ושגיאה בהתאם למצב החיבור.

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

אתה יכול ליצור מופע של מודל מבנה החיבור ולמלא את השדות בערכים במסד הנתונים של Postgres.

     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

ה dsn המשתנה משתמש ב- ספרינטף שיטת עיצוב ו פעל לעיצוב מחרוזת לשרשור את השדות של ה Config לבנות ולהגדיר את מחרוזת החיבור של Postgres.

אתה יכול לפתוח חיבור למסד נתונים עם GORM באמצעות ה לִפְתוֹחַ שיטה. ה לִפְתוֹחַ השיטה לוקחת חיבור פתוח ממנהל התקן של מסד נתונים ורשימת תצורות אופציונליות מ- Config סוג חבילת GORM. הוא מחזיר מופע חיבור ושגיאה אופציונלית.

כיצד להוריד וידאו מאתר אינטרנט
     db, err := gorm.Open(postgres.Open(dsn), &gorm.Config{})\n if err != nil {\n return db, err\n }\n

פינג למסד הנתונים כדי לאמת את סטטוס החיבור

אתה יכול לעשות פינג למסד הנתונים שלך כדי לאמת את המצב התקין/מקוון באמצעות פונקציה שמחזירה תוצאה בוליאנית או שגיאה אם ​​חיבור מסד הנתונים אינו חוקי.

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

יהיה עליך ליצור מופע חיבור חדש כדי לעשות פינג למסד הנתונים. הנה דוגמה באמצעות חיבור חדש פונקציה ליצירת מופע חיבור:

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

לאחר שהשגת מופע חיבור, צור מופע מסד נתונים עם DB שיטת החיבור.

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

אתה יכול לעשות פינג למסד הנתונים באמצעות ה פינג שיטת מופע מסד הנתונים. ה פינג השיטה מחזירה שגיאות או אֶפֶס אם החיבור הצליח.

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

ריצה מוצלחת אמורה להביא לפלט דומה לזה:

  פלט חיבור מוצלח

אתה יכול להשתמש בחבילת מסד הנתונים/sql כדי לעבוד עם מסד נתונים של SQL ב-Go

ה מסד נתונים/sql החבילה ניתנת להרחבה, ומכיוון שרוב חבילות מסד הנתונים והדרייברים של Go מרחיבים את החבילה, אתה יכול להשתמש בחבילה בפרויקטים שלך במקום לבחור ב-ORMs.

GORM מספקת גם בונה SQL לבניית SQL גולמי, שעוזר לפעולות שאינן נתמכות.