refactor(monorepo): extract coord-core
This commit is contained in:
@@ -0,0 +1,38 @@
|
||||
package db
|
||||
|
||||
import (
|
||||
"context"
|
||||
"database/sql"
|
||||
"fmt"
|
||||
"os"
|
||||
"path/filepath"
|
||||
|
||||
_ "modernc.org/sqlite"
|
||||
)
|
||||
|
||||
func Open(ctx context.Context, dbPath string) (*sql.DB, error) {
|
||||
if err := ensureParentDir(dbPath); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
db, err := sql.Open("sqlite", dbPath)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("open sqlite database: %w", err)
|
||||
}
|
||||
|
||||
if err := applyPragmas(ctx, db); err != nil {
|
||||
_ = db.Close()
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return db, nil
|
||||
}
|
||||
|
||||
func ensureParentDir(dbPath string) error {
|
||||
parent := filepath.Dir(dbPath)
|
||||
if parent == "." || parent == "" {
|
||||
return nil
|
||||
}
|
||||
|
||||
return os.MkdirAll(parent, 0o755)
|
||||
}
|
||||
Reference in New Issue
Block a user