اتصل بقاعدة بيانات Postgres في تطبيق Go الخاص بك باستخدام GORM

اتصل بقاعدة بيانات Postgres في تطبيق Go الخاص بك باستخدام GORM
القراء مثلك يساعدون في دعم MUO. عند إجراء عملية شراء باستخدام الروابط الموجودة على موقعنا ، فقد نربح عمولة تابعة. قراءة المزيد.

تعد Postgres واحدة من قواعد بيانات SQL الشائعة نظرًا لميزاتها العديدة وسهولة استخدامها. Postgres متوافق مع ACID مع ميزات مثل Multi-Version Concurrency Control ، والنسخ المتماثل غير المتزامن ، والمعاملات المتداخلة ، وتسجيل الكتابة المسبقة. إلى جانب العديد من الميزات الأخرى ، تجعل هذه الميزات 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 بوستجرس سائق:

هل يمكن لجهاز كمبيوتر أن يكون لهما نفس عنوان IP
 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 في بيئة التشغيل. يمكنك استخدام البنية كنموذج للحقول التي تشكل سلسلة الاتصال. يؤدي استخدام البنية إلى تسهيل تغيير القيم المختلفة واختبارها ، خاصة في حالات حقن التبعية.

فيما يلي مثال على نموذج هيكلي للحقول التي تتكون منها سلسلة الاتصال:





 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 متغير يستخدم سبرينتف طريقة التنسيق و انتقل أفعال تنسيق السلاسل لتسلسل حقول التكوين هيكلة وإعداد سلسلة اتصال Postgres.

يمكنك فتح اتصال قاعدة بيانات مع GORM باستخدام امتداد فتح طريقة. ال فتح يأخذ الأسلوب في اتصال مفتوح من برنامج تشغيل قاعدة البيانات وقائمة التكوينات الاختيارية من التكوين نوع حزمة GORM. تقوم بإرجاع مثيل اتصال وخطأ اختياري.

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

تنفيذ أمر Ping على قاعدة البيانات للتحقق من حالة الاتصال

يمكنك اختبار اتصال قاعدة البيانات الخاصة بك للتحقق من الحالة الصحية / عبر الإنترنت باستخدام وظيفة تقوم بإرجاع نتيجة منطقية أو خطأ إذا كان اتصال قاعدة البيانات غير صالح.

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

ستحتاج إلى إنشاء مثيل اتصال جديد لإجراء اختبار ping لقاعدة البيانات. إليك مثال على استخدام اتصال جديد وظيفة لإنشاء مثيل اتصال:

     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 خام ، وهو أمر مفيد للعمليات غير المدعومة.