From cbd5c09c5e1403709d4aabf91051443f147689e5 Mon Sep 17 00:00:00 2001 From: Anhgelus Morhtuuzh Date: Mon, 22 Dec 2025 18:34:02 +0100 Subject: refactor(backend): move db related in new package --- backend/db.go | 68 ----------------------------------------------------------- 1 file changed, 68 deletions(-) delete mode 100644 backend/db.go (limited to 'backend/db.go') diff --git a/backend/db.go b/backend/db.go deleted file mode 100644 index 3828880..0000000 --- a/backend/db.go +++ /dev/null @@ -1,68 +0,0 @@ -package backend - -import ( - "context" - "database/sql" - "embed" - "fmt" - "log/slog" - "regexp" - "slices" - "strconv" - - _ "github.com/mattn/go-sqlite3" -) - -//go:embed migrations -var migrations embed.FS - -var nameReg = regexp.MustCompile(`(\d{3})_[a-zA-Z_-]+.sql`) - -func ConnectDatabase(cfg *Config) *sql.DB { - db, err := sql.Open("sqlite3", fmt.Sprintf("file:%s?cache=shared", cfg.Database)) - if err != nil { - panic(err) - } - return db -} - -func RunMigration(ctx context.Context, db *sql.DB) error { - entries, err := migrations.ReadDir("migrations") - if err != nil { - return err - } - type runMig struct { - val string - n int - } - var toRun []runMig - for _, e := range entries { - rawId := nameReg.FindStringSubmatch(e.Name()) - id, err := strconv.Atoi(rawId[1]) - if err != nil { - return err - } - b, err := migrations.ReadFile("migrations/" + e.Name()) - if err != nil { - return err - } - slog.Debug("loading migration", "n", id, "file", e.Name(), "content", string(b)) - toRun = append(toRun, runMig{ - val: string(b), n: id, - }) - } - if len(toRun) == 0 { - return nil - } - slices.SortFunc(toRun, func(a, b runMig) int { - return a.n - b.n - }) - for _, m := range toRun { - slog.Info("migrating", "n", m.n) - _, err := db.ExecContext(ctx, m.val) - if err != nil { - return err - } - } - return nil -} -- cgit v1.2.3