@@ -1,6 +1,7 @@
4 "database/sql"
5 "database/sql"
@@ -15,7 +16,7 @@ import (
15 "github.com/pressly/goose/v3"
16 "github.com/pressly/goose/v3"
18−func Connect() (*sql.DB, error) {
19+func Connect(ctx context.Context) (*sql.DB, error) {
19 dataDir := config.Get().Data.Directory
20 dataDir := config.Get().Data.Directory
20 if dataDir == "" {
21 if dataDir == "" {
21 return nil, fmt.Errorf("data.dir is not set")
22 return nil, fmt.Errorf("data.dir is not set")
@@ -31,7 +32,7 @@ func Connect() (*sql.DB, error) {
33 // Verify connection
34 // Verify connection
34− if err = db.Ping(); err != nil {
35+ if err = db.PingContext(ctx); err != nil {
35 db.Close()
36 db.Close()
36 return nil, fmt.Errorf("failed to connect to database: %w", err)
37 return nil, fmt.Errorf("failed to connect to database: %w", err)
@@ -46,7 +47,7 @@ func Connect() (*sql.DB, error) {
48 for _, pragma := range pragmas {
49 for _, pragma := range pragmas {
49− if _, err = db.Exec(pragma); err != nil {
50+ if _, err = db.ExecContext(ctx, pragma); err != nil {
50 logging.Error("Failed to set pragma", pragma, err)
51 logging.Error("Failed to set pragma", pragma, err)
52 logging.Debug("Set pragma", "pragma", pragma)
53 logging.Debug("Set pragma", "pragma", pragma)