In this article, we will explore how to connect the PostgresSQL database with Go using Go's database package
Prerequisites
Instal Postgres and PGAdmin or Run this Docker image
Basic understanding of SQL
Create a main.go file, run go mod init <module Name>
, and Install the Go Database package
go mod init <moduleName>
go get github.com/go-pg/pg
In main.go file we will import the package, create a user Struct, initialize the Database connection and Create a Table by passing the model interface
package main
import (
"github.com/go-pg/pg"
"github.com/go-pg/pg/orm"
)
type User struct {
Name string
Emails string
}
func StartConnection() {
db := pg.Connect(&pg.Options{
Addr: ":5432",
User: "username",
Password: "password",
Database: "database-name",
})
err := createSchema(db)
if err != nil {
panic(err)
}
}
// createSchema creates database schema for User models.
func createSchema(db *pg.DB) error {
models := []interface{}{
(*User)(nil),
}
for _, model := range models {
err := db.Model(model).CreateTable(&orm.CreateTableOptions{
Temp: false,
IfNotExists: true,
})
if err != nil {
return err
}
}
return nil
}