diff --git a/main.go b/main.go index 5eb7672..22ad9db 100644 --- a/main.go +++ b/main.go @@ -25,7 +25,9 @@ var migrations embed.FS var conf config.Config func main() { - isserver := flag.Bool("server", false, "Run as Server") + isServer := flag.Bool("server", false, "Run as Server") + resetDB := flag.Bool("reset-db", false, "Reset DB") + flag.Parse() confPath := "config.toml" _, err := os.Stat(confPath) @@ -48,9 +50,9 @@ func main() { conf.Worker.TempDir = "/tmp" } - if *isserver { + if *isServer { slog.Info("Starting Server...") - server.Start(conf, templates, static, migrations) + server.Start(conf, templates, static, migrations, *resetDB) } else { slog.Info("Starting Worker...") worker.Start(conf) diff --git a/server/server.go b/server/server.go index fdc2cd6..61fe645 100644 --- a/server/server.go +++ b/server/server.go @@ -33,7 +33,7 @@ func sub(a, b int) int { var db *pgxpool.Pool -func Start(_conf config.Config, tmplFS embed.FS, staticFS embed.FS, migrationsFS embed.FS) { +func Start(_conf config.Config, tmplFS embed.FS, staticFS embed.FS, migrationsFS embed.FS, resetDB bool) { conf = _conf // Static Files @@ -70,6 +70,15 @@ func Start(_conf config.Config, tmplFS embed.FS, staticFS embed.FS, migrationsFS return } + if resetDB { + slog.Info("Running Down Migrations...") + err = m.Down() + if err != nil { + slog.Error("Unable to Migrate Down", "err", err) + return + } + } + //err = m.Down() err = m.Up() if err == migrate.ErrNoChange { @@ -95,10 +104,10 @@ func Start(_conf config.Config, tmplFS embed.FS, staticFS embed.FS, migrationsFS server := &http.Server{ Addr: conf.Server.Address, Handler: mux, - ReadTimeout: 1 * time.Second, - WriteTimeout: 1 * time.Second, + ReadTimeout: 10 * time.Second, + WriteTimeout: 10 * time.Second, IdleTimeout: 30 * time.Second, - ReadHeaderTimeout: 2 * time.Second, + ReadHeaderTimeout: 10 * time.Second, } serverClose := make(chan bool)