Skip to content

Commit 66fe841

Browse files
izzzzziZakhar Izmaylov
and
Zakhar Izmaylov
authored
Enhance database initialization in db.go (#2645)
- Updated GORM configuration to skip default transactions and prepare statements. - Modified the database connection string to include caching and journal mode settings. - Executed several PRAGMA statements to optimize SQLite performance and enable foreign key support. These changes improve database handling and performance in the application. Co-authored-by: Zakhar Izmaylov <ptdev@kedruss.ru>
1 parent 7b7eb98 commit 66fe841

File tree

1 file changed

+24
-2
lines changed

1 file changed

+24
-2
lines changed

database/db.go

+24-2
Original file line numberDiff line numberDiff line change
@@ -82,9 +82,31 @@ func InitDB(dbPath string) error {
8282
}
8383

8484
c := &gorm.Config{
85-
Logger: gormLogger,
85+
Logger: gormLogger,
86+
SkipDefaultTransaction: true,
87+
PrepareStmt: true,
8688
}
87-
db, err = gorm.Open(sqlite.Open(dbPath), c)
89+
90+
dsn := dbPath + "?cache=shared&_journal_mode=WAL&_synchronous=NORMAL"
91+
db, err = gorm.Open(sqlite.Open(dsn), c)
92+
if err != nil {
93+
return err
94+
}
95+
96+
sqlDB, err := db.DB()
97+
if err != nil {
98+
return err
99+
}
100+
101+
_, err = sqlDB.Exec("PRAGMA cache_size = -64000;")
102+
if err != nil {
103+
return err
104+
}
105+
_, err = sqlDB.Exec("PRAGMA temp_store = MEMORY;")
106+
if err != nil {
107+
return err
108+
}
109+
_, err = sqlDB.Exec("PRAGMA foreign_keys = ON;")
88110
if err != nil {
89111
return err
90112
}

0 commit comments

Comments
 (0)