add database reset flag

This commit is contained in:
Samuel Lorch 2024-05-11 00:38:40 +02:00
parent bf34abf5f8
commit 3aeda54404
2 changed files with 18 additions and 7 deletions

View file

@ -25,7 +25,9 @@ var migrations embed.FS
var conf config.Config var conf config.Config
func main() { 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() flag.Parse()
confPath := "config.toml" confPath := "config.toml"
_, err := os.Stat(confPath) _, err := os.Stat(confPath)
@ -48,9 +50,9 @@ func main() {
conf.Worker.TempDir = "/tmp" conf.Worker.TempDir = "/tmp"
} }
if *isserver { if *isServer {
slog.Info("Starting Server...") slog.Info("Starting Server...")
server.Start(conf, templates, static, migrations) server.Start(conf, templates, static, migrations, *resetDB)
} else { } else {
slog.Info("Starting Worker...") slog.Info("Starting Worker...")
worker.Start(conf) worker.Start(conf)

View file

@ -33,7 +33,7 @@ func sub(a, b int) int {
var db *pgxpool.Pool 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 conf = _conf
// Static Files // Static Files
@ -70,6 +70,15 @@ func Start(_conf config.Config, tmplFS embed.FS, staticFS embed.FS, migrationsFS
return 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.Down()
err = m.Up() err = m.Up()
if err == migrate.ErrNoChange { if err == migrate.ErrNoChange {
@ -95,10 +104,10 @@ func Start(_conf config.Config, tmplFS embed.FS, staticFS embed.FS, migrationsFS
server := &http.Server{ server := &http.Server{
Addr: conf.Server.Address, Addr: conf.Server.Address,
Handler: mux, Handler: mux,
ReadTimeout: 1 * time.Second, ReadTimeout: 10 * time.Second,
WriteTimeout: 1 * time.Second, WriteTimeout: 10 * time.Second,
IdleTimeout: 30 * time.Second, IdleTimeout: 30 * time.Second,
ReadHeaderTimeout: 2 * time.Second, ReadHeaderTimeout: 10 * time.Second,
} }
serverClose := make(chan bool) serverClose := make(chan bool)