Integra Spanner a GORM (dialecto de PostgreSQL)

GORM es una herramienta de asignación relacional de objetos para el lenguaje de programación Go. Proporciona un framework para asignar un modelo de dominio orientado a objetos a una base de datos relacional.

Puedes integrar bases de datos de Spanner PostgreSQL en GORM con el controlador pgx estándar de PostgreSQL y PGAdapter.

Configura GORM con las bases de datos de dialectos de PostgreSQL de Spanner

  1. Asegúrate de que PGAdapter se ejecute en la misma máquina que la aplicación que se conecta mediante GORM con Spanner.

    Para obtener más información, consulta Cómo iniciar PGAdapter.

  2. Agrega una declaración de importación para el dialecto PostgreSQL GORM a tu aplicación. Este es el mismo controlador que usarías normalmente con una base de datos de PostgreSQL.

  3. Especifica localhost y 5432 como el host y el puerto del servidor de la base de datos en la string de conexión de GORM. GORM requiere un nombre de usuario y una contraseña en la cadena de conexión. PGAdapter los ignora.

    • De manera opcional, especifica un número de puerto diferente si PGAdapter está configurado para escuchar en un puerto que no sea el predeterminado (5432) de PostgreSQL.
    • PGAdapter no es compatible con SSL. GORM intenta conectarse primero con SSL habilitada de forma predeterminada. Inhabilitar SSL en la solicitud de conexión acelera el proceso de conexión, ya que requiere un proceso de ida y vuelta menos.
    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{})
    

Consulta la documentación de GORM con PostgreSQL si deseas obtener más opciones de conexión para PostgreSQL.

Usa GORM con las bases de datos de dialectos de PostgreSQL de Spanner

Si deseas obtener más información sobre las funciones y recomendaciones para usar GORM con Spanner, consulta la documentación de referencia en GitHub.

¿Qué sigue?