GORM ile Go Uygulamanızda Postgres Veritabanına Bağlanın

GORM ile Go Uygulamanızda Postgres Veritabanına Bağlanın
Sizin gibi okuyucular MUO'yu desteklemeye yardımcı oluyor. Sitemizdeki bağlantıları kullanarak bir satın alma işlemi gerçekleştirdiğinizde, bir ortaklık komisyonu kazanabiliriz. Devamını oku.

Postgres, birçok özelliği ve kullanım kolaylığı nedeniyle popüler SQL veritabanlarından biridir. Postgres, Çoklu Sürüm Eşzamanlılık Denetimi, zaman uyumsuz çoğaltma, iç içe işlemler ve önceden yazma kaydı gibi özelliklerle ACID uyumludur. Diğer pek çok özelliğin yanı sıra, bu özellikler Postgres'i SQL veritabanı yönetim sistemi haline getirir.





Go ekosistemi, Postgres dahil olmak üzere çeşitli DBMS ile etkileşim için birçok pakete ev sahipliği yapar. Go yerleşik sağlar veritabanı/sql veritabanı sürücülerini kullanarak SQL veritabanlarıyla çalışmak için paket. Go veri yapılarını kullanarak, veritabanınızla kolay etkileşim için GORM gibi popüler üçüncü taraf ORM'leri entegre edebilirsiniz.





GORM ve Postgres'e Başlarken

  GORM ana sayfası

GORM paketi Go ekosistemindeki en popüler ORM'lerden biridir çünkü geliştirici dostudur, zengin özelliklere sahiptir ve the veritabanı/sql paket .





GORM, otomatik geçişler, günlük kaydı, hazırlanan ifadeler, işlemler ve parçalama için işlevsellik sağlar. Paket, yapıları ve diğer yerleşik veri türlerini kullanarak önce kod yaklaşımını benimser.

GORM paketini projenizin bağımlılıklarına eklemek için çalışma dizininizde bu terminal komutunu çalıştırın:



 go get gorm.io/gorm\n

GORM paketini çalıştırmak için bir veritabanı sürücüsüne ihtiyacınız olacak. GORM, popüler DBMS için veritabanı sürücüleri sağlar. GORM'u yüklemek için bu komutu çalışma dizininizde çalıştırın. Postgres sürücü:

 go get gorm.io/driver/postgres\n

Postgres'i GORM Kullanarak Go İle Bağlama

ORM ve veritabanı sürücüsüyle çalışmak için bu paketleri Go dosyanıza alın. Şunu kullanacaksınız: kayıt hataları konsolunuza ve fmt çıktıyı yazdırmak için paket.





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

Bilgisayarınıza bağlanmak için bir bağlantı dizesine ihtiyacınız olacak. Postgres veritabanı çalışan ortamda. Bağlantı dizesini oluşturan alanlar için bir yapıyı model olarak kullanabilirsiniz. Bir yapı kullanmak, özellikle bağımlılık ekleme durumlarında farklı değerleri değiştirmeyi ve test etmeyi kolaylaştırır.

İşte bağlantı dizesini oluşturan alanlar için örnek bir yapı modeli:





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

Aşağıda, veritabanı bağlantınız için tipik bir işlev bulunmaktadır. Bağlantı örneğini ve bağlantı durumuna bağlı olarak bir hata döndürür.

hangi anakartın olduğunu nasıl öğrenebilirim
 func NewConnection() (*gorm.DB, error) {\n return db, nil\n}\n

Bağlantı yapı modelini başlatabilir ve alanları Postgres veritabanınızdaki değerlerle doldurabilirsiniz.

dizüstü bilgisayar ekranı pencerelerini kapattıktan sonra monitör ekranını açık tutun 10
     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

bu dsn değişken kullanır Sprintf biçimlendirme yöntemi ve Dize biçimlendirme fiillerine git alanlarını birleştirmek için Yapılandırma Postgres bağlantı dizesini yapılandırın ve ayarlayın.

kullanarak GORM ile bir veritabanı bağlantısı açabilirsiniz. Açık yöntem. bu Açık yöntem, bir veritabanı sürücüsünden açık bir bağlantı ve sürücüden isteğe bağlı yapılandırmaların bir listesini alır. Yapılandırma GORM paketinin türü. Bir bağlantı örneği ve isteğe bağlı bir hata döndürür.

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

Bağlantı Durumunu Doğrulamak için Veritabanına Ping Gönderme

Bir mantıksal sonuç veya veritabanı bağlantısı geçersizse bir hata döndüren bir işlevle sağlık/çevrimiçi durumunu doğrulamak için veritabanınıza ping işlemi yapabilirsiniz.

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

Veritabanına ping atmak için yeni bir bağlantı örneği oluşturmanız gerekecek. İşte kullanan bir örnek Yeni bağlantı bir bağlantı örneği oluşturma işlevi:

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

Bir bağlantı örneği edindikten sonra, aşağıdakilerle bir veritabanı örneği oluşturun: veri tabanı bağlantı yöntemi.

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

ile veritabanına ping atabilirsiniz. ping veritabanı örneğinin yöntemi. bu ping yöntem herhangi bir hata döndürür veya sıfır bağlantı başarılı olsaydı.

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

Başarılı bir çalıştırma, şuna benzer bir çıktıyla sonuçlanmalıdır:

  başarılı bağlantı çıkışı

Go'da SQL Database ile Çalışmak İçin database/sql Paketini Kullanabilirsiniz

bu veritabanı/sql paket genişletilebilir ve çoğu Go veritabanı paketi ve sürücüsü paketi genişlettiği için, ORM'leri tercih etmek yerine projelerinizde paketi kullanabilirsiniz.

GORM ayrıca ham SQL oluşturmak için desteklenmeyen işlemler için yardımcı olan bir SQL oluşturucu sağlar.