Phase 1: database schema, migrations, repository, user seeding
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -6,6 +6,7 @@ import (
|
||||
"net/http"
|
||||
"os"
|
||||
"os/signal"
|
||||
"path/filepath"
|
||||
"syscall"
|
||||
"time"
|
||||
|
||||
@@ -13,6 +14,7 @@ import (
|
||||
"github.com/go-chi/chi/v5/middleware"
|
||||
|
||||
"qbank/internal/config"
|
||||
"qbank/internal/db"
|
||||
)
|
||||
|
||||
func main() {
|
||||
@@ -21,6 +23,25 @@ func main() {
|
||||
logger := slog.New(slog.NewJSONHandler(os.Stdout, nil))
|
||||
slog.SetDefault(logger)
|
||||
|
||||
if err := os.MkdirAll(cfg.DataDir, 0755); err != nil {
|
||||
slog.Error("create data dir", "err", err)
|
||||
os.Exit(1)
|
||||
}
|
||||
|
||||
database, err := db.Open(filepath.Join(cfg.DataDir, "qbank.db"))
|
||||
if err != nil {
|
||||
slog.Error("open database", "err", err)
|
||||
os.Exit(1)
|
||||
}
|
||||
defer database.Close()
|
||||
|
||||
if err := db.Seed(database, cfg.AdminUsers); err != nil {
|
||||
slog.Error("seed users", "err", err)
|
||||
os.Exit(1)
|
||||
}
|
||||
|
||||
_ = db.New(database) // repo will be wired into handlers in later phases
|
||||
|
||||
r := chi.NewRouter()
|
||||
r.Use(middleware.RequestID)
|
||||
r.Use(requestLogger(logger))
|
||||
|
||||
Reference in New Issue
Block a user