diff options
| author | adamdottv <[email protected]> | 2025-05-29 15:41:13 -0500 |
|---|---|---|
| committer | adamdottv <[email protected]> | 2025-05-29 15:41:13 -0500 |
| commit | 4818bc542611b3ab554824fece8a071b0ac6307b (patch) | |
| tree | cddbdf77119ba15a86368a4027130baeb9ae333c /internal/db/connect.go | |
| parent | 8a8c6b14afe8edd71f19d1d6054e0eac51d4a3ae (diff) | |
| download | opencode-4818bc542611b3ab554824fece8a071b0ac6307b.tar.gz opencode-4818bc542611b3ab554824fece8a071b0ac6307b.zip | |
wip: refactoring tui
Diffstat (limited to 'internal/db/connect.go')
| -rw-r--r-- | internal/db/connect.go | 68 |
1 files changed, 0 insertions, 68 deletions
diff --git a/internal/db/connect.go b/internal/db/connect.go deleted file mode 100644 index d90a57178..000000000 --- a/internal/db/connect.go +++ /dev/null @@ -1,68 +0,0 @@ -package db - -import ( - "database/sql" - "fmt" - "os" - "path/filepath" - - _ "github.com/ncruces/go-sqlite3/driver" - _ "github.com/ncruces/go-sqlite3/embed" - - "github.com/sst/opencode/internal/config" - "log/slog" - - "github.com/pressly/goose/v3" -) - -func Connect() (*sql.DB, error) { - dataDir := config.Get().Data.Directory - if dataDir == "" { - return nil, fmt.Errorf("data.dir is not set") - } - if err := os.MkdirAll(dataDir, 0o700); err != nil { - return nil, fmt.Errorf("failed to create data directory: %w", err) - } - dbPath := filepath.Join(dataDir, "opencode.db") - // Open the SQLite database - db, err := sql.Open("sqlite3", dbPath) - if err != nil { - return nil, fmt.Errorf("failed to open database: %w", err) - } - - // Verify connection - if err = db.Ping(); err != nil { - db.Close() - return nil, fmt.Errorf("failed to connect to database: %w", err) - } - - // Set pragmas for better performance - pragmas := []string{ - "PRAGMA foreign_keys = ON;", - "PRAGMA journal_mode = WAL;", - "PRAGMA page_size = 4096;", - "PRAGMA cache_size = -8000;", - "PRAGMA synchronous = NORMAL;", - } - - for _, pragma := range pragmas { - if _, err = db.Exec(pragma); err != nil { - slog.Error("Failed to set pragma", pragma, err) - } else { - slog.Debug("Set pragma", "pragma", pragma) - } - } - - goose.SetBaseFS(FS) - - if err := goose.SetDialect("sqlite3"); err != nil { - slog.Error("Failed to set dialect", "error", err) - return nil, fmt.Errorf("failed to set dialect: %w", err) - } - - if err := goose.Up(db, "migrations"); err != nil { - slog.Error("Failed to apply migrations", "error", err) - return nil, fmt.Errorf("failed to apply migrations: %w", err) - } - return db, nil -} |
