aboutsummaryrefslogtreecommitdiff
path: root/api/internal/database/database.go
blob: 1a5512773718840121615c3c6d6b6ee87e138a2c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
package database

import (
	"database/sql"
	"fmt"
	"log"
	"path/filepath"
	"water/api/internal/config"

	_ "github.com/mattn/go-sqlite3"
)

func EstablishDBConnection() (*sql.DB, error) {
	c, err := config.Load()
	if err != nil {
		return nil, fmt.Errorf("error while reading config file: %w", err)
	}

	driver := c.GetString("DB_DRIVER")
	path, err := filepath.Abs(c.GetString("DB_PATH"))
	log.Println("my db path: ", path)
	if err != nil {
		return nil, fmt.Errorf("failed to get absolute path of the database: %w", err)
	}
	db, err := sql.Open(driver, path)
	if err != nil {
		return nil, fmt.Errorf("error while opening the database: %w", err)
	}
	return db, nil
}