use embed for migrations
This commit is contained in:
parent
bb3d9abb7e
commit
fa6c9cac33
@ -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)
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user