From 1f4711edb6b24e16d05f4b482f3217b7b2ff760a Mon Sep 17 00:00:00 2001 From: Gabriel De Los Rios Date: Sat, 1 Nov 2025 19:29:38 -0300 Subject: [PATCH] feat: add db config and setup --- internal/database/database.go | 44 +++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 internal/database/database.go diff --git a/internal/database/database.go b/internal/database/database.go new file mode 100644 index 0000000..779ab83 --- /dev/null +++ b/internal/database/database.go @@ -0,0 +1,44 @@ +package database + +import ( + "database/sql" + "fmt" + "os" + "time" + + _ "github.com/go-sql-driver/mysql" +) + +var DB *sql.DB +var dbName = os.Getenv("DB_NAME") +var dbUser = os.Getenv("DB_USER") +var dbPassword = os.Getenv("DB_PASSWORD") +var dbHost = os.Getenv("DB_HOST") +var dbPort = os.Getenv("DB_PORT") + +var Conn_string = fmt.Sprintf("%s:%s@tcp(%s:%s)/%s?parseTime=true&charset=utf8mb4&collation=utf8mb4_unicode_ci", dbUser, dbPassword, dbHost, dbPort, dbName) + +func InitDB(dataSourceName string) error { + var err error + + DB, err = sql.Open("mysql", dataSourceName) + if err != nil { + return err + } + + DB.SetMaxOpenConns(25) + DB.SetMaxIdleConns(25) + DB.SetConnMaxLifetime(5 * time.Minute) + + if err = DB.Ping(); err != nil { + return err + } + println("DB connected") + return nil +} + +func CloseDB() { + if DB != nil { + DB.Close() + } +}