From f5fdddcc50c6015760332802508ada3b583471b1 Mon Sep 17 00:00:00 2001
From: or-else <or.else@gmail.com>
Date: Tue, 28 Feb 2023 18:43:12 -0800
Subject: [PATCH] fix root user handling in init-db

---
 tinode-db/main.go | 42 +++++++++++++++++++-----------------------
 1 file changed, 19 insertions(+), 23 deletions(-)

diff --git a/tinode-db/main.go b/tinode-db/main.go
index 6be833f6..4f4a9bdb 100644
--- a/tinode-db/main.go
+++ b/tinode-db/main.go
@@ -250,16 +250,29 @@ func main() {
 				log.Fatalln("Database not found.")
 			}
 			log.Println("Database not found. Creating.")
+			err = store.Store.InitDb(config.StoreConfig, false)
+			if err == nil {
+				log.Println("Database successfully created.")
+			}
 		} else if strings.Contains(err.Error(), "Invalid database version") {
 			msg := "Wrong DB version: expected " + strconv.Itoa(adapterVersion) + ", got " +
 				strconv.Itoa(databaseVersion) + "."
+
 			if *reset {
-				log.Println(msg, "Dropping and recreating the database.")
+				log.Println(msg, "Reset Requested. Dropping and recreating the database.")
+				err = store.Store.InitDb(config.StoreConfig, true)
+				if err == nil {
+					log.Println("Database successfully reset.")
+				}
 			} else if *upgrade {
 				if databaseVersion > adapterVersion {
 					log.Fatalln(msg, "Unable to upgrade: database has greater version than the adapter.")
 				}
 				log.Println(msg, "Upgrading the database.")
+				err = store.Store.UpgradeDb(config.StoreConfig)
+				if err == nil {
+					log.Println("Database successfully upgraded.")
+				}
 			} else {
 				log.Fatalln(msg, "Use --reset to reset, --upgrade to upgrade.")
 			}
@@ -267,34 +280,17 @@ func main() {
 			log.Fatalln("Failed to init DB adapter:", err)
 		}
 	} else if *reset {
-		log.Println("Database reset requested")
-	} else {
-		log.Println("Database exists, DB version is correct. All done.")
-		os.Exit(0)
-	}
-
-	if *upgrade {
-		// Upgrade DB from one version to another.
-		err = store.Store.UpgradeDb(config.StoreConfig)
-		if err == nil {
-			log.Println("Database successfully upgraded.")
-		}
-	} else {
-		// Reset or create DB
+		log.Println("Reset requested. Dropping and recreating the database.")
 		err = store.Store.InitDb(config.StoreConfig, true)
 		if err == nil {
-			var action string
-			if *reset {
-				action = "reset"
-			} else {
-				action = "initialized"
-			}
-			log.Println("Database", action)
+			log.Println("Database successfully reset.")
 		}
+	} else {
+		log.Println("Database exists, version is correct.")
 	}
 
 	if err != nil {
-		log.Fatalln("Failed to init DB:", err)
+		log.Fatalln("Failure:", err)
 	}
 
 	if !*upgrade {
-- 
GitLab