feat(init): initialize run migrations
This commit is contained in:
parent
1c8e19b83f
commit
7f21c39f41
5 changed files with 29 additions and 26 deletions
22
cmd/main.go
22
cmd/main.go
|
|
@ -1,11 +1,6 @@
|
||||||
package main
|
package main
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"database/sql"
|
|
||||||
"log"
|
|
||||||
"path/filepath"
|
|
||||||
|
|
||||||
"github.com/KristianJBorgwarth/dendrite.daemon/persistence"
|
|
||||||
"github.com/KristianJBorgwarth/dendrite.daemon/core"
|
"github.com/KristianJBorgwarth/dendrite.daemon/core"
|
||||||
_ "modernc.org/sqlite"
|
_ "modernc.org/sqlite"
|
||||||
)
|
)
|
||||||
|
|
@ -15,20 +10,3 @@ func main() {
|
||||||
server.Run()
|
server.Run()
|
||||||
}
|
}
|
||||||
|
|
||||||
func runMigration() {
|
|
||||||
dbPath := filepath.Join("persistence", "index.db")
|
|
||||||
|
|
||||||
db, err := sql.Open("sqlite", dbPath)
|
|
||||||
if err != nil {
|
|
||||||
log.Fatal(err)
|
|
||||||
}
|
|
||||||
defer db.Close()
|
|
||||||
|
|
||||||
migrationsDir := filepath.Join("persistence", "migrations")
|
|
||||||
|
|
||||||
if err := persistence.ApplyMigrations(db, migrationsDir); err != nil {
|
|
||||||
log.Fatal(err)
|
|
||||||
}
|
|
||||||
|
|
||||||
log.Println("migrations applied successfully")
|
|
||||||
}
|
|
||||||
|
|
|
||||||
|
|
@ -2,8 +2,8 @@ package handlers
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"encoding/json"
|
"encoding/json"
|
||||||
|
|
||||||
"github.com/KristianJBorgwarth/dendrite.daemon/config"
|
"github.com/KristianJBorgwarth/dendrite.daemon/config"
|
||||||
|
"github.com/KristianJBorgwarth/dendrite.daemon/persistence"
|
||||||
)
|
)
|
||||||
|
|
||||||
type initializeParams struct {
|
type initializeParams struct {
|
||||||
|
|
@ -24,6 +24,7 @@ type initializeParams struct {
|
||||||
|
|
||||||
func Initialize(raw json.RawMessage) (*config.Config, error) {
|
func Initialize(raw json.RawMessage) (*config.Config, error) {
|
||||||
var params initializeParams
|
var params initializeParams
|
||||||
|
|
||||||
if err := json.Unmarshal(raw, ¶ms); err != nil {
|
if err := json.Unmarshal(raw, ¶ms); err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
@ -41,7 +42,14 @@ func Initialize(raw json.RawMessage) (*config.Config, error) {
|
||||||
FilenameFormat: params.DailyNote.FilenameFormat,
|
FilenameFormat: params.DailyNote.FilenameFormat,
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
cfg.SetDefaults()
|
cfg.SetDefaults()
|
||||||
|
|
||||||
|
err := persistence.InitializeIndex(cfg.VaultPath)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
return cfg, nil
|
return cfg, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -115,13 +115,13 @@ func (s *Server) handleRequest(req types.Request) {
|
||||||
err error
|
err error
|
||||||
)
|
)
|
||||||
|
|
||||||
|
// move to handler package?
|
||||||
switch req.Method {
|
switch req.Method {
|
||||||
case "initialize":
|
case "initialize":
|
||||||
s.config, err = handlers.Initialize(req.Params)
|
s.config, err = handlers.Initialize(req.Params)
|
||||||
result = map[string]any{"status": "ok"}
|
result = map[string]any{"status": "ok"}
|
||||||
default:
|
default:
|
||||||
err = fmt.Errorf("unknown method: %s", req.Method)
|
err = fmt.Errorf("unknown method: %s", req.Method)
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
s.writeResponse(req.ID, result, err)
|
s.writeResponse(req.ID, result, err)
|
||||||
|
|
|
||||||
BIN
dendrite
BIN
dendrite
Binary file not shown.
|
|
@ -1,5 +1,5 @@
|
||||||
// Package persistence handles database schema migrations
|
// Package persistence handles database schema migrations
|
||||||
package persistence
|
package persistence
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"database/sql"
|
"database/sql"
|
||||||
|
|
@ -8,7 +8,24 @@ import (
|
||||||
"sort"
|
"sort"
|
||||||
)
|
)
|
||||||
|
|
||||||
func ApplyMigrations(db *sql.DB, dir string) error {
|
func InitializeIndex(vaulPath string) error {
|
||||||
|
dbPath := filepath.Join(vaulPath, "index.db")
|
||||||
|
|
||||||
|
db, err := sql.Open("sqlite", dbPath)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
defer db.Close()
|
||||||
|
|
||||||
|
migrationsDir := filepath.Join("persistence", "migrations")
|
||||||
|
|
||||||
|
if err := applyMigrations(db, migrationsDir); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func applyMigrations(db *sql.DB, dir string) error {
|
||||||
_, err := db.Exec(`CREATE TABLE IF NOT EXISTS schema_migrations (version TEXT PRIMARY KEY);`)
|
_, err := db.Exec(`CREATE TABLE IF NOT EXISTS schema_migrations (version TEXT PRIMARY KEY);`)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue