Stellen Sie mit GORM eine Verbindung zu einer Postgres-Datenbank in Ihrer Go-Anwendung her

Stellen Sie mit GORM eine Verbindung zu einer Postgres-Datenbank in Ihrer Go-Anwendung her

Postgres ist aufgrund seiner vielen Funktionen und Benutzerfreundlichkeit eine der beliebtesten SQL-Datenbanken. Postgres ist ACID-konform mit Funktionen wie Multi-Version Concurrency Control, asynchroner Replikation, verschachtelten Transaktionen und Write-Ahead-Protokollierung. Zusammen mit vielen anderen machen diese Funktionen Postgres zum idealen SQL-Datenbankverwaltungssystem.

Das Go-Ökosystem beherbergt viele Pakete für die Interaktion mit verschiedenen DBMS, einschließlich Postgres. Go stellt das integrierte database/sql – Paket für die Arbeit mit SQL-Datenbanken unter Verwendung von Datenbanktreibern bereit. Mithilfe von Go-Datenstrukturen können Sie beliebte ORMs von Drittanbietern wie GORM für eine einfache Interaktion mit Ihrer Datenbank integrieren.

Erste Schritte mit GORM und Postgres

die GORM-Homepage

Das GORM-Paket ist eines der beliebtesten ORMs im Go-Ökosystem, da es entwicklerfreundlich und funktionsreich ist und auf dem Datenbank-/SQL -Paket aufbaut.

GORM bietet Funktionen für automatische Migrationen, Protokollierung, vorbereitete Anweisungen, Transaktionen und Sharding. Das Paket verfolgt den Code-First-Ansatz mit Strukturen und anderen integrierten Datentypen.

Führen Sie diesen Terminalbefehl in Ihrem Arbeitsverzeichnis aus, um das GORM-Paket zu den Abhängigkeiten Ihres Projekts hinzuzufügen:

go get gorm.io/gorm\n

Sie benötigen einen Datenbanktreiber, um mit dem GORM-Paket zu arbeiten. GORM bietet Datenbanktreiber für gängige DBMS. Führen Sie diesen Befehl in Ihrem Arbeitsverzeichnis aus, um den GORM Postgres -Treiber zu installieren:

go get gorm.io/driver/postgres\n

Verbinden von Postgres mit Go mit GORM

Importieren Sie diese Pakete in Ihre Go-Datei, um mit dem ORM- und Datenbanktreiber zu arbeiten. Sie verwenden das Protokollpaket , um Fehler in Ihrer Konsole zu protokollieren, und das fmt -Paket, um die Ausgabe zu drucken.

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

Sie benötigen eine Verbindungszeichenfolge, um in der laufenden Umgebung eine Verbindung zu Ihrer Postgres-Datenbank herzustellen. Sie können eine Struktur als Modell für die Felder verwenden, aus denen die Verbindungszeichenfolge besteht. Die Verwendung einer Struktur erleichtert das Ändern und Testen verschiedener Werte, insbesondere in Fällen von Abhängigkeitsinjektion.

Hier ist ein Beispiel für ein Strukturmodell für die Felder, aus denen die Verbindungszeichenfolge besteht:

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

Nachfolgend finden Sie eine typische Funktion für Ihre Datenbankverbindung. Es gibt die Verbindungsinstanz und je nach Verbindungsstatus einen Fehler zurück.

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

Sie können das Verbindungsstrukturmodell instanziieren und die Felder mit den Werten in Ihrer Postgres-Datenbank füllen.

    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

Die dsn – Variable verwendet die Sprintf- Formatierungsmethode und Go-String-Formatierungsverben, um die Felder der Config -Struktur zu verketten und die Postgres-Verbindungszeichenfolge einzurichten.

Mit der Open – Methode können Sie eine Datenbankverbindung mit GORM öffnen. Die Open -Methode übernimmt eine offene Verbindung von einem Datenbanktreiber und eine Liste optionaler Konfigurationen aus dem Config -Typ des GORM-Pakets. Es gibt eine Verbindungsinstanz und einen optionalen Fehler zurück.

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

Pingen der Datenbank, um den Verbindungsstatus zu überprüfen

Sie können Ihre Datenbank anpingen, um den Integritäts-/Onlinestatus mit einer Funktion zu überprüfen, die ein boolesches Ergebnis oder einen Fehler zurückgibt, wenn die Datenbankverbindung ungültig ist.

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

Sie müssen eine neue Verbindungsinstanz erstellen, um die Datenbank zu pingen. Hier ist ein Beispiel für die Verwendung der NewConnection – Funktion zum Erstellen einer Verbindungsinstanz:

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

Nachdem Sie eine Verbindungsinstanz erhalten haben, erstellen Sie eine Datenbankinstanz mit der DB- Methode der Verbindung.

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

Sie können die Datenbank mit der Ping- Methode der Datenbankinstanz anpingen. Die Ping- Methode gibt alle Fehler oder nil zurück, wenn die Verbindung erfolgreich war.

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

Eine erfolgreiche Ausführung sollte zu einer Ausgabe ähnlich der folgenden führen:

erfolgreicher Verbindungsausgang

Sie können das database/sql-Paket verwenden, um mit der SQL-Datenbank in Go zu arbeiten

Das Datenbank-/SQL -Paket ist erweiterbar, und da die meisten Go-Datenbankpakete und -Treiber das Paket erweitern, können Sie das Paket in Ihren Projekten verwenden, anstatt sich für ORMs zu entscheiden.

GORM bietet auch einen SQL-Builder zum Erstellen von Roh-SQL, was für nicht unterstützte Operationen hilfreich ist.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert