mirror of
https://github.com/Rain-kl/OpenFlare.git
synced 2026-09-28 05:46:36 +08:00
fix(db): ensure sqlite data directory exists before opening database
This commit is contained in:
@@ -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{
|
||||
|
||||
Reference in New Issue
Block a user