@@ -1,6 +1,7 @@
11package db
22
33import (
4+ "context"
45 "database/sql"
56 "fmt"
67 "os"
@@ -15,7 +16,7 @@ import (
1516 "github.com/pressly/goose/v3"
1617)
1718
18−func Connect() (*sql.DB, error) {
19+func Connect(ctx context.Context) (*sql.DB, error) {
1920 dataDir := config.Get().Data.Directory
2021 if dataDir == "" {
2122 return nil, fmt.Errorf("data.dir is not set")
@@ -31,7 +32,7 @@ func Connect() (*sql.DB, error) {
3132 }
3233
3334 // Verify connection
34− if err = db.Ping(); err != nil {
35+ if err = db.PingContext(ctx); err != nil {
3536 db.Close()
3637 return nil, fmt.Errorf("failed to connect to database: %w", err)
3738 }
@@ -46,7 +47,7 @@ func Connect() (*sql.DB, error) {
4647 }
4748
4849 for _, pragma := range pragmas {
49− if _, err = db.Exec(pragma); err != nil {
50+ if _, err = db.ExecContext(ctx, pragma); err != nil {
5051 logging.Error("Failed to set pragma", pragma, err)
5152 } else {
5253 logging.Debug("Set pragma", "pragma", pragma)