튜토리얼 Conectar PostgresSQL en Go con GORM

¿Que es GORM?



The fantastic ORM library for Golang, aims to be developer friendly



GORM es un ORM completo para Golang para Bases de datos relacionales (SQL) con todo lo necesario para interactuar con la base de Datos: Asociaciones, Hooks, Context, migrations, etc.

Espera… ¿Que es un ORM? 😂



Object Relational Mappings / Mapeadores de Objetos Relacionales



Es un modelo de programación que permite mapear las estructuras de una base de datos relacional sobre una estructura lógica de entidades… ¿Que 🙃? En palabras simples es una forma de Trabajar con objetos de programación con los datos y entidades de las Bases de datos relacionales con el propósito de simplificar y accelerar el desarrollo de nuestras aplicaciones

비엔... ¿Por donde empiezo?



테너 고 인스타라도



Go necesitamos Go(🤪), así que en la pagina oficial de Go 다운로드 가능한 최종 버전:

> go version
go version go1.15.6 windows/amd64


Go con go mod의 실행 모드



En la 카페타 en la que queremos empezar nuestro proyecto ejecutamos:

go mod init github.com/user/project


Eso Generara un nuevo proyecto de Go y podremos empezar a importar los paquetes necesarios para nuestro proyecto. PostgreSQL과 함께 GORM y el controlador de nuestra bases de datos, en este caso PostgreSQL.

go get github.com/jinzhu/gorm github.com/lib/pq


Ahora vamos a escribir codigo 😎


  • Creamos 2 기록: Un main.go y connectDB.go Dentro de una 카펫타 /storage . 덴트로 델 main.go :

  • package main
    
    import (
      "log"
      "github.com/user/project/storage"
    )
    
    func main() {
       log.Println("Start Project")
    
       DB := storage.ConnectDB()
       defer DB.Close()
    
       log.Println(DB.RowsAffected)
    }
    


    오류가 발생하지 않았으므로 오류가 발생하지 않았습니다.
  • Conectarnos a la base de datos: Dentro del archivo ConnectDB() agregamos los paquetes necesarios:

  • package storage 
    
    import ( 
      "fmt" 
      "log" 
      "github.com/jinzhu/gorm"  
      //Postgres Driver imported 
      _ "github.com/lib/pq"
    )
    


    Y creamos nuestra funciónstorage/connectDB.go:

    //ConnectDB connect to Postgres DB
    func ConnectDB() *gorm.DB {
      var (
       host = "localhost"
       user = "postgres"
       port = 5432
       password = "password"
       name = "db"
     )
     //Connect to DB
     var DB *gorm.DB  
     DB, err = gorm.Open("postgres", fmt.Sprintf("host=%s port=%d 
     user=%s password=%s dbname=%s sslmode=disable", host, portInt, 
     user, password, name))
     ...
    }
    


    Esta es la parte en que se conecta a la bases de datos. 도커: .

    En este codigo: primero la función retorna ConnectDB() que es el cliente GORM con la conexión a nuestra bases de datos. 새로운 변수에 대한 정보는 최종 결정에 따라 결정됩니다.

    Para finalizar vamos a verificar por errores y retornar el cliente

    //ConnectDB connect to Postgres DB
    func ConnectDB() *gorm.DB {
    ...
     //Check for Errors in DB 
     if err != nil {  
      log.Fatalf("Error in connect the DB %v", err)  
      return nil 
     }  
     if err := DB.DB().Ping(); err != nil { 
       log.Fatalln("Error in make ping the DB " + err.Error())  
       return nil 
     }  
     if DB.Error != nil { 
      log.Fatalln("Any Error in connect the DB " + err.Error()) 
      return nil 
     }  
     log.Println("DB connected")  
     return DB
    }
    


    Verificamos si hubo algún error en la bases de datos y hacemos un *gorm.DB para asegurar nuestra conxión a la base de datos

    ¡리스토! ¡Ya nos conectamos a nuestra Bases de datos conectada! 😀



    Como ultimo punto la información de la base de datos es informacion vital, lo mejor es esconderla y ponerla en las variables de entorno, No es muy diificil y escondera la informacion que no deberias o quieras compartir
    Gracias por leer y llegar hasta aquí, espero que haya sido de ayuda

    좋은 웹페이지 즐겨찾기