Add cli flag for initializing tables instead of creating them at startup
parent
55908bb215
commit
fef473199c
32
main.go
32
main.go
|
@ -3,6 +3,7 @@ package main
|
||||||
import (
|
import (
|
||||||
"database/sql"
|
"database/sql"
|
||||||
"encoding/json"
|
"encoding/json"
|
||||||
|
"flag"
|
||||||
"fmt"
|
"fmt"
|
||||||
"html/template"
|
"html/template"
|
||||||
"log"
|
"log"
|
||||||
|
@ -219,6 +220,11 @@ func ensureAdminUser(db *sql.DB, config *handlers.Config) error {
|
||||||
}
|
}
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
|
// Define command-line flag for initialization
|
||||||
|
initialize := flag.Bool("initialize", false, "Initialize database tables and admin user")
|
||||||
|
flag.BoolVar(initialize, "i", false, "Short for --initialize")
|
||||||
|
flag.Parse()
|
||||||
|
|
||||||
config, err := loadConfig("config/config.json")
|
config, err := loadConfig("config/config.json")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatal("Error loading config:", err)
|
log.Fatal("Error loading config:", err)
|
||||||
|
@ -231,17 +237,25 @@ func main() {
|
||||||
}
|
}
|
||||||
defer db.Close()
|
defer db.Close()
|
||||||
|
|
||||||
// Create tables if they don't exist
|
// Perform initialization if the flag is set
|
||||||
err = createTablesIfNotExist(db)
|
if *initialize {
|
||||||
if err != nil {
|
log.Println("Initializing database...")
|
||||||
log.Fatal("Error creating database tables:", err)
|
err = createTablesIfNotExist(db)
|
||||||
|
if err != nil {
|
||||||
|
log.Fatal("Error creating database tables:", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
err = ensureAdminUser(db, config)
|
||||||
|
if err != nil {
|
||||||
|
log.Fatal("Error ensuring admin user:", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
log.Println("Initialization completed successfully. Exiting.")
|
||||||
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
// Ensure admin user exists
|
// Normal startup (without automatic table creation)
|
||||||
err = ensureAdminUser(db, config)
|
log.Println("Starting ThreadR server...")
|
||||||
if err != nil {
|
|
||||||
log.Fatal("Error ensuring admin user:", err)
|
|
||||||
}
|
|
||||||
|
|
||||||
dir, err := os.Getwd()
|
dir, err := os.Getwd()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|
Loading…
Reference in New Issue