From 858e647e24fb17542529d347f3622b5e4a41a814 Mon Sep 17 00:00:00 2001 From: maximo tejeda Date: Sun, 23 Feb 2025 09:59:14 -0400 Subject: [PATCH] CREATE memory table for ai conversation --- internal/adapters/db/db.go | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/internal/adapters/db/db.go b/internal/adapters/db/db.go index 3a49c63..cab6029 100644 --- a/internal/adapters/db/db.go +++ b/internal/adapters/db/db.go @@ -1 +1,39 @@ package db + +import ( + "context" + "database/sql" + "fmt" + "time" + _"embed" + + _ "github.com/mattn/go-sqlite3" +) + +//go:embed schema.sql +var schema string + + +func NewDB(ctx context.Context, URI string)(db *sql.DB, err error) { + + params := "cache=shared&_foreign_keys=on&_busy_timeout=3000&_journal_mode=WAL" + db, err = sql.Open("sqlite3", fmt.Sprintf("%s?%s", URI, params)) + if err != nil { + return nil, fmt.Errorf("connecting %w", err) + } + // test conn + err = db.PingContext(ctx) + if err != nil { + return nil, fmt.Errorf("ping Error %w", err) + } + db.SetConnMaxIdleTime(5*time.Second) + CreateTables(db) + return db, nil +} + +func CreateTables(db *sql.DB) { + _, err := db.Exec(schema) + if err != nil { + panic(err) + } +}