diff options
| author | Kyren223 <Kyren223@proton.me> | 2024-11-02 13:14:03 +0200 |
|---|---|---|
| committer | Kyren223 <Kyren223@proton.me> | 2024-11-02 13:18:21 +0200 |
| commit | c5064f6bbd06596ba1eb002904b9572427d71fc6 (patch) | |
| tree | ed747581c2eb99758f6b66981c328f96caa7c652 /internal/server/api/database.go | |
| parent | 7ad5f5aa60cc940dbd4c6ec6cb091e7214a3fdb4 (diff) | |
feat: client and server api changes to accomedate DB
Diffstat (limited to 'internal/server/api/database.go')
| -rw-r--r-- | internal/server/api/database.go | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/internal/server/api/database.go b/internal/server/api/database.go new file mode 100644 index 0000000..7057393 --- /dev/null +++ b/internal/server/api/database.go @@ -0,0 +1,35 @@ +package api + +import ( + "database/sql" + "log" + + "github.com/kyren223/eko/pkg/assert" +) + +var db *sql.DB + +func ConnectToDatabase() { + db, err := sql.Open("sqlite3", "server.db") + assert.NoError(err, "DB should always be accessible") + assert.AddFlush(db) + log.Println("established connection with the database") + + pragmas := []string{ + "PRAGMA journal_mode = WAL;", + "PRAGMA synchronous = NORMAL;", + "PRAGMA temp_store = MEMORY;", + "PRAGMA mmap_size = 30000000000;", + } + for _, pragma := range pragmas { + _, err := db.Exec(pragma) + assert.NoError(err, "DB pragmas should always execute with no errors") + } + + log.Println("database connection ready to be used") +} + +func CloseDatabase() { + db.Close() + log.Println("connection with database closed") +} |
