| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 |
- package database
- import (
- "fmt"
- "log"
- "os"
- "path/filepath"
- migrate "github.com/golang-migrate/migrate/v4"
- _ "github.com/golang-migrate/migrate/v4/database/postgres"
- _ "github.com/golang-migrate/migrate/v4/source/file"
- config "github.com/felamaslen/gmus-backend/pkg/config"
- _ "github.com/jackc/pgx/stdlib"
- "github.com/jmoiron/sqlx"
- )
- var db *sqlx.DB
- func GetConnection() *sqlx.DB {
- if db != nil {
- return db
- }
- db = sqlx.MustConnect("pgx", config.GetConfig().DatabaseUrl)
- return db
- }
- func EndPool() {
- if db == nil {
- return
- }
- db.Close()
- }
- func MigrateDatabase() {
- cwd, err := os.Getwd()
- if err != nil {
- log.Fatal("Error getting directory:", err)
- return
- }
- directoryUrl := fmt.Sprintf("file://%s", filepath.Join(cwd, "migrations"))
- m, err := migrate.New(directoryUrl, config.GetConfig().DatabaseUrl)
- if err != nil {
- log.Fatal("Error setting up: ", err)
- }
- m.Up()
- }
|