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"
)
var DB *sqlx.DB
//go:embed migrations/*
var dbMigrations embed.FS
func New(filename string) (*sqlx.DB, error) {
db, err := sqlx.Open("sqlite3", filename)
func Connect(filename string) error {
DB, err := sqlx.Open("sqlite3", filename)
if err != nil {
return nil, err
return err
}
migrations := migrate.EmbedFileSystemMigrationSource{
@ -24,13 +26,13 @@ func New(filename string) (*sqlx.DB, error) {
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 {
return nil, err
return err
}
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
import (
"freed/internal/api"
"freed/internal/database"
"log"
"net/http"
"github.com/gofiber/fiber/v2"
"github.com/gofiber/fiber/v2/middleware/logger"
)
var (
dbFile = "./freed.db"
)
func main() {
_, err := database.New("./freed.db")
err := database.Connect(dbFile)
if err != nil {
log.Fatalf("Could not initialize database: %v", err)
}
app := fiber.New()
// Routes
app.Get("/status", func(c *fiber.Ctx) error {
c.JSON(fiber.Map{
app.Use(logger.New())
app.Get("/", func(ctx *fiber.Ctx) error {
return ctx.JSON(&fiber.Map{
"application": "freed",
"version": "0.0.1",
"status": "up",
"status": "running",
})
return c.SendStatus(http.StatusOK)
})
api.Setup(app)
app.Listen(":42069")
}