aboutsummaryrefslogtreecommitdiff
path: root/internal/database
diff options
context:
space:
mode:
Diffstat (limited to 'internal/database')
-rw-r--r--internal/database/database.go50
1 files changed, 50 insertions, 0 deletions
diff --git a/internal/database/database.go b/internal/database/database.go
new file mode 100644
index 0000000..c67c75e
--- /dev/null
+++ b/internal/database/database.go
@@ -0,0 +1,50 @@
+package database
+
+import (
+ "fmt"
+ "log"
+ "os"
+ "time"
+
+ "github.com/glebarez/sqlite"
+ "gorm.io/gorm"
+ "gorm.io/gorm/logger"
+)
+
+var DB *gorm.DB
+
+func Open() {
+
+ newLogger := logger.New(
+ log.New(os.Stdout, "\r\n", log.LstdFlags), // io writer
+ logger.Config{
+ SlowThreshold: time.Millisecond * 10, // Slow SQL threshold
+ LogLevel: logger.Info, // Log level
+ IgnoreRecordNotFoundError: false, // Ignore ErrRecordNotFound error for logger
+ Colorful: true, // Disable color
+ },
+ )
+
+ db, err := gorm.Open(sqlite.Open("database.sqlite"), &gorm.Config{
+ Logger: newLogger,
+ })
+
+ if err != nil {
+ fmt.Println("storage err: ", err)
+ }
+
+ sqlDB, err := db.DB()
+ if err != nil {
+ fmt.Println("storage err: ", err)
+ }
+
+ sqlDB.SetMaxIdleConns(3)
+ sqlDB.SetMaxOpenConns(100)
+ sqlDB.SetConnMaxLifetime(time.Hour)
+
+ DB = db
+}
+
+func Get() *gorm.DB {
+ return DB
+}