package utils import ( "me-fit/log" "me-fit/types" "database/sql" "errors" "github.com/golang-migrate/migrate/v4" "github.com/golang-migrate/migrate/v4/database/sqlite3" _ "github.com/golang-migrate/migrate/v4/source/file" ) func RunMigrations(db *sql.DB, pathPrefix string) error { driver, err := sqlite3.WithInstance(db, &sqlite3.Config{}) if err != nil { log.Error("Could not create Migration instance: %v", err) return types.ErrInternal } m, err := migrate.NewWithDatabaseInstance( "file://"+pathPrefix+"migration/", "", driver) if err != nil { log.Error("Could not create migrations instance: %v", err) return types.ErrInternal } err = m.Up() if err != nil { if !errors.Is(err, migrate.ErrNoChange) { log.Error("Could not run migrations: %v", err) return types.ErrInternal } } return nil }