Adapts database connections

This commit is contained in:
Dennis Schoepf 2024-04-26 17:23:25 +02:00
parent 34f7d99639
commit 47dab069c3
2 changed files with 21 additions and 14 deletions

View file

@ -9,14 +9,16 @@ import (
migrate "github.com/rubenv/sql-migrate" migrate "github.com/rubenv/sql-migrate"
) )
var DB *sqlx.DB
//go:embed migrations/* //go:embed migrations/*
var dbMigrations embed.FS var dbMigrations embed.FS
func New(filename string) (*sqlx.DB, error) { func Connect(filename string) error {
db, err := sqlx.Open("sqlite3", filename) DB, err := sqlx.Open("sqlite3", filename)
if err != nil { if err != nil {
return nil, err return err
} }
migrations := migrate.EmbedFileSystemMigrationSource{ migrations := migrate.EmbedFileSystemMigrationSource{
@ -24,13 +26,13 @@ func New(filename string) (*sqlx.DB, error) {
Root: "migrations", Root: "migrations",
} }
n, err := migrate.Exec(db.DB, "sqlite3", migrations, migrate.Up) n, err := migrate.Exec(DB.DB, "sqlite3", migrations, migrate.Up)
if err != nil { if err != nil {
return nil, err return err
} }
fmt.Printf("Applied %d migrations - Database is ready!\n", n) fmt.Printf("Applied %d migrations - Database is ready!\n", n)
return db, err return nil
} }

21
main.go
View file

@ -1,31 +1,36 @@
package main package main
import ( import (
"freed/internal/api"
"freed/internal/database" "freed/internal/database"
"log" "log"
"net/http"
"github.com/gofiber/fiber/v2" "github.com/gofiber/fiber/v2"
"github.com/gofiber/fiber/v2/middleware/logger"
)
var (
dbFile = "./freed.db"
) )
func main() { func main() {
_, err := database.New("./freed.db") err := database.Connect(dbFile)
if err != nil { if err != nil {
log.Fatalf("Could not initialize database: %v", err) log.Fatalf("Could not initialize database: %v", err)
} }
app := fiber.New() app := fiber.New()
app.Use(logger.New())
// Routes app.Get("/", func(ctx *fiber.Ctx) error {
app.Get("/status", func(c *fiber.Ctx) error { return ctx.JSON(&fiber.Map{
c.JSON(fiber.Map{
"application": "freed", "application": "freed",
"version": "0.0.1", "version": "0.0.1",
"status": "up", "status": "running",
}) })
return c.SendStatus(http.StatusOK)
}) })
api.Setup(app)
app.Listen(":42069") app.Listen(":42069")
} }