summaryrefslogtreecommitdiff
path: root/internal/server/api/database.go
diff options
context:
space:
mode:
authorKyren223 <Kyren223@proton.me>2024-11-02 13:14:03 +0200
committerKyren223 <Kyren223@proton.me>2024-11-02 13:18:21 +0200
commitc5064f6bbd06596ba1eb002904b9572427d71fc6 (patch)
treeed747581c2eb99758f6b66981c328f96caa7c652 /internal/server/api/database.go
parent7ad5f5aa60cc940dbd4c6ec6cb091e7214a3fdb4 (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.go35
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")
+}