Intégrer Spanner à GORM (dialecte PostgreSQL)

GORM est un outil de mappage relationnel objet pour le langage de programmation Go. Il fournit un framework permettant de mapper un modèle de domaine orienté objet à une base de données relationnelle.

Vous pouvez intégrer des bases de données PostgreSQL Spanner à GORM à l'aide du pilote pgx PostgreSQL standard et de PGAdapter.

Configurer GORM avec des bases de données de dialecte PostgreSQL dans Spanner

  1. Assurez-vous que PGAdapter s'exécute sur la même machine que l'application qui se connecte à l'aide de GORM avec Spanner.

    Pour en savoir plus, consultez Démarrer PGAdapter.

  2. Ajoutez une instruction d'importation pour le dialecte GORM de PostgreSQL à votre application. Il s'agit du même pilote que celui que vous utiliseriez normalement avec une base de données PostgreSQL.

  3. Spécifiez localhost et 5432 comme hôte et port du serveur de base de données dans la chaîne de connexion GoRM. GORM nécessite un nom d'utilisateur et un mot de passe dans la chaîne de connexion. PGAdapter les ignore.

    • Vous pouvez également spécifier un numéro de port différent si PGAdapter est configuré pour écouter sur un port autre que le port PostgreSQL par défaut (5432).
    • PGAdapter n'est pas compatible avec SSL. Par défaut, GORM essaie d'abord de se connecter lorsque SSL est activé. La désactivation de SSL dans la requête de connexion accélère le processus de connexion, car cela nécessite un aller-retour en moins.
    import (
      "gorm.io/driver/postgres"
      "gorm.io/gorm"
    )
    
    dsn := "host=localhost user=gorm password=gorm dbname=gorm port=5432 sslmode=disable"
    db, err := gorm.Open(postgres.Open(dsn), &gorm.Config{})
    

Consultez la documentation GORM avec PostgreSQL pour connaître les autres options de connexion pour PostgreSQL.

Utiliser GORM avec les bases de données de dialecte PostgreSQL de Spanner

Pour en savoir plus sur les fonctionnalités et les recommandations d'utilisation de GORM avec Spanner, consultez la documentation de référence sur GitHub.

Étapes suivantes