+13
-3
knotserver/db/db.go
+13
-3
knotserver/db/db.go
···
1
package db
2
3
import (
4
"database/sql"
5
"strings"
6
7
_ "github.com/mattn/go-sqlite3"
8
)
9
10
type DB struct {
11
-
db *sql.DB
12
}
13
14
-
func Setup(dbPath string) (*DB, error) {
15
// https://github.com/mattn/go-sqlite3#connection-string
16
opts := []string{
17
"_foreign_keys=1",
···
19
"_synchronous=NORMAL",
20
"_auto_vacuum=incremental",
21
}
22
23
db, err := sql.Open("sqlite3", dbPath+"?"+strings.Join(opts, "&"))
24
if err != nil {
···
60
return nil, err
61
}
62
63
-
return &DB{db: db}, nil
64
}
···
1
package db
2
3
import (
4
+
"context"
5
"database/sql"
6
+
"log/slog"
7
"strings"
8
9
_ "github.com/mattn/go-sqlite3"
10
+
"tangled.org/core/log"
11
)
12
13
type DB struct {
14
+
db *sql.DB
15
+
logger *slog.Logger
16
}
17
18
+
func Setup(ctx context.Context, dbPath string) (*DB, error) {
19
// https://github.com/mattn/go-sqlite3#connection-string
20
opts := []string{
21
"_foreign_keys=1",
···
23
"_synchronous=NORMAL",
24
"_auto_vacuum=incremental",
25
}
26
+
27
+
logger := log.FromContext(ctx)
28
+
logger = log.SubLogger(logger, "db")
29
30
db, err := sql.Open("sqlite3", dbPath+"?"+strings.Join(opts, "&"))
31
if err != nil {
···
67
return nil, err
68
}
69
70
+
return &DB{
71
+
db: db,
72
+
logger: logger,
73
+
}, nil
74
}
+1
-1
knotserver/server.go
+1
-1
knotserver/server.go