diff options
Diffstat (limited to 'database')
-rw-r--r-- | database/database.go | 39 |
1 files changed, 39 insertions, 0 deletions
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) +} |