From 3df621637fee57a734c63199a413f1c833ba4c7b Mon Sep 17 00:00:00 2001 From: ryan Date: Fri, 28 Aug 2026 15:42:24 +0800 Subject: [PATCH] fix(db): ensure sqlite data directory exists before opening database --- backend/plugins/infra/database/postgres.go | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/backend/plugins/infra/database/postgres.go b/backend/plugins/infra/database/postgres.go index 0e0c9158..c6e689b2 100644 --- a/backend/plugins/infra/database/postgres.go +++ b/backend/plugins/infra/database/postgres.go @@ -5,10 +5,14 @@ package database import ( "context" + "fmt" "log" "net" "net/url" + "os" + "path/filepath" "strconv" + "strings" "time" "github.com/glebarez/sqlite" @@ -40,6 +44,14 @@ func initSQLite() (*gorm.DB, error) { sqlitePath = "./data/wavelet.db" } + if sqlitePath != ":memory:" && !strings.HasPrefix(sqlitePath, "file:") { + if dir := filepath.Dir(sqlitePath); dir != "" && dir != "." { + if err := os.MkdirAll(dir, 0755); err != nil { + return nil, fmt.Errorf("create sqlite directory %q failed: %w", dir, err) + } + } + } + targetDB, err := gorm.Open(sqlite.Open(sqlitePath), &gorm.Config{ DisableForeignKeyConstraintWhenMigrating: true, Logger: &gormZapLogger{