use embed for migrations

This commit is contained in:
Michael Thomson 2025-02-07 18:29:11 -05:00
parent bb3d9abb7e
commit fa6c9cac33
No known key found for this signature in database
GPG Key ID: 8EFECCD347C72F7D
2 changed files with 6 additions and 3 deletions

View File

@ -2,13 +2,16 @@ package migrate
import ( import (
"database/sql" "database/sql"
"embed"
"fmt" "fmt"
"log" "log"
"os"
_ "github.com/mattn/go-sqlite3" _ "github.com/mattn/go-sqlite3"
) )
//go:embed migrations/*.sql
var migrations embed.FS
type Migration struct { type Migration struct {
Version int Version int
Name string Name string
@ -26,7 +29,7 @@ func Migrate(db *sql.DB) {
log.Fatal(err) log.Fatal(err)
} }
files, err := os.ReadDir("./migrations") files, err := migrations.ReadDir("migrations")
if err != nil { if err != nil {
log.Fatal("Failed to read migrations directory") log.Fatal("Failed to read migrations directory")
} }
@ -38,7 +41,7 @@ func Migrate(db *sql.DB) {
err = row.Scan(&migration.Version, &migration.Name) err = row.Scan(&migration.Version, &migration.Name)
if err == sql.ErrNoRows { if err == sql.ErrNoRows {
fmt.Printf("Running migration: %s\n", file.Name()) fmt.Printf("Running migration: %s\n", file.Name())
migrationSql, err := os.ReadFile(fmt.Sprintf("./migrations/%s", file.Name())) migrationSql, err := migrations.ReadFile(fmt.Sprintf("migrations/%s", file.Name()))
if err != nil { if err != nil {
log.Fatal(err) log.Fatal(err)
} }