From 190bd7f073e77eb538731506a92a175880aef24e Mon Sep 17 00:00:00 2001 From: Cara Salter Date: Tue, 29 Aug 2023 20:51:38 -0400 Subject: Init database connector --- database/database.go | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 database/database.go (limited to 'database') diff --git a/database/database.go b/database/database.go new file mode 100644 index 0000000..cc3473d --- /dev/null +++ b/database/database.go @@ -0,0 +1,39 @@ +// Package database provides functions and structs to interact with the +// postgres database +package database + +import ( + "context" + "log" + "os" + + "github.com/golang-migrate/migrate/v4" + _ "github.com/golang-migrate/migrate/v4/database/postgres" + _ "github.com/golang-migrate/migrate/v4/source/file" + "github.com/jackc/pgx/v5/pgxpool" +) + +var DB *pgxpool.Pool + +func ConnectDB() { + url := os.Getenv("POSTGRES_URL") + var err error + + DB, err = pgxpool.New(context.Background(), url) + + if err != nil { + log.Fatal(err) + } + + runMigrations() + + log.Println("Successfully connected to database") +} + +func runMigrations() { + m, err := migrate.New("file://./migrations", os.Getenv("POSTGRES_URL")) + if err != nil { + log.Fatal(err) + } + m.Steps(2) +} -- cgit v1.2.3