mirror of
https://github.com/gravitl/netmaker.git
synced 2025-10-05 16:57:51 +08:00
feat(go): use single db handle; use connection pool;
This commit is contained in:
@@ -1,10 +1,11 @@
|
||||
package database
|
||||
|
||||
import (
|
||||
"context"
|
||||
"database/sql"
|
||||
"errors"
|
||||
"os"
|
||||
"path/filepath"
|
||||
"github.com/gravitl/netmaker/db"
|
||||
"time"
|
||||
|
||||
_ "github.com/mattn/go-sqlite3" // need to blank import this package
|
||||
)
|
||||
@@ -29,21 +30,17 @@ var SQLITE_FUNCTIONS = map[string]interface{}{
|
||||
}
|
||||
|
||||
func initSqliteDB() error {
|
||||
// == create db file if not present ==
|
||||
if _, err := os.Stat("data"); os.IsNotExist(err) {
|
||||
os.Mkdir("data", 0700)
|
||||
}
|
||||
dbFilePath := filepath.Join("data", dbFilename)
|
||||
if _, err := os.Stat(dbFilePath); os.IsNotExist(err) {
|
||||
os.Create(dbFilePath)
|
||||
}
|
||||
// == "connect" the database ==
|
||||
gormDB := db.FromContext(db.WithContext(context.TODO()))
|
||||
|
||||
var dbOpenErr error
|
||||
SqliteDB, dbOpenErr = sql.Open("sqlite3", dbFilePath)
|
||||
SqliteDB, dbOpenErr = gormDB.DB()
|
||||
if dbOpenErr != nil {
|
||||
return dbOpenErr
|
||||
}
|
||||
SqliteDB.SetMaxOpenConns(1)
|
||||
|
||||
SqliteDB.SetMaxOpenConns(5)
|
||||
SqliteDB.SetConnMaxLifetime(time.Hour)
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
@@ -134,7 +131,7 @@ func sqliteFetchRecords(tableName string) (map[string]string, error) {
|
||||
}
|
||||
|
||||
func sqliteCloseDB() {
|
||||
SqliteDB.Close()
|
||||
//SqliteDB.Close()
|
||||
}
|
||||
|
||||
func sqliteConnected() bool {
|
||||
|
Reference in New Issue
Block a user