feat: support post-migration startup hooks (#54)

This commit is contained in:
ila
2026-08-13 22:05:34 +08:00
parent c5a1e6bebe
commit e4c6c646b6
+16
View File
@@ -1,6 +1,7 @@
package platform
import (
"context"
"database/sql"
"io/fs"
"log/slog"
@@ -17,6 +18,20 @@ type App struct {
logger *slog.Logger
mux *http.ServeMux
migrations []Migration
startups []func(context.Context) error
}
func (a *App) RegisterStartup(startup func(context.Context) error) {
a.startups = append(a.startups, startup)
}
func (a *App) Start(ctx context.Context) error {
for _, startup := range a.startups {
if err := startup(ctx); err != nil {
return err
}
}
return nil
}
func NewApp(cfg Config, database *sql.DB, logger *slog.Logger) *App {
@@ -101,3 +116,4 @@ func requestSecurityHeaders(next http.Handler) http.Handler {
next.ServeHTTP(w, r)
})
}